T487543 斗地主之战

题目背景

斗地主是众所周知的扑克玩法。$zengxuheng$ 也很喜欢玩。 斗地主中 `Joker` (大王) $>$ `joker`(小王)$> 2>A>K>Q>J>10>9>8>7>6>5>4>3$。 斗地主牌型如下: 1. 火箭:即双王(大王和小王),最大的牌 1. 炸弹:四张相同的数值牌(如四个 $7$) 1. 单牌:单个牌(如红桃 $5$) 1. 对牌:数值相同的牌(如梅花 $4$ 加方块 $4$) 1. 三张牌:数值相同的三张牌(如 $3$ 个J) 1. 三带一:数值相同的三张牌 $+$ 一张单牌。例如:$333+6$ 1. 三带二:数值相同的三张牌 $+$ 一对牌。例如:$333+99$ 1. 单顺:五张或更多的连续单牌。不包括 $2$ 和大小王(如 $34567$、$10JQK1$) 1. 双顺:三对或更多的连续对牌。不包括 $2$ 和大小王(如$334455$、$JJQQKK11$) 1. 三顺:两个或更多的连续三张牌。不包括 $2$ 和双王(如 $333444$,$333444555$) 1. 飞机带翅膀:三顺+同数量的单牌或对牌(如 $333444+7+9$、$333444+66+77$)(飞机中如果含有炸弹,则翅膀中不能带炸弹中的牌) 1. 四带二:四张数值相同的牌+两个单牌或对牌(如 $5555+3+8$、$5555+44+77$)(不是炸弹) 需要图片[看这张](https://cdn.luogu.com.cn/upload/pic/1827.png) 几个特殊性质: 1. 除火箭外炸弹可以炸掉任何牌型。 1. 牌不比花色,只比点数。 例如别人出方片 $7$ 你不能出黑桃 $7$ 来压。 1. 顺子之间必须要牌数相同才算同一牌型。 1. 牌型之间不能混,除出炸弹和火箭外。 例如对方出了单牌 $7$ 你只能出比它大的单牌或炸弹或火箭。 1. 三张牌带两张牌:例如 $888+66$,你不可以拿 $888+99$压,因为带的牌不计入比较。

题目描述

现在你有 $n$ 张牌,有 $m$ 次回合。 每次回合对方出几张牌,满足斗地主牌型。 如果你可以压对方的牌,你可以选择压或不要。压了你的牌就会去掉你压的牌。当然如果你压不了对方的牌,你只能不要。 现在开启了一个积分规则,每压一个得一分,不要不得分。 你将会提前知道对手会出的所有牌。并可以根据最优策略让你的积分总和最大。

输入格式

第一行,两个整数 $n$,$m$。 第二行,$n$ 个整数,表示你的牌。 第 $3$ 到 $3+m$ 行,每行几个整数代表对方第 $i$ 轮出出的牌,以 $0$ 结尾。

输出格式

一行一个整数,表示你能获得的最大积分。

说明/提示

对于 $30\%$ 的数据,有 $n \le 50,m \le 5$ 对于 $50\%$ 的数据,有 $n \le 100,m \le 50$ 对于 $100\%$ 的数据,有$1 \le n,m \le 10^5$ ## 样例1解释 首先对手出 $\texttt{JJJ}$,为了比他大,要出 $\texttt{KKK}$,得到一分。 接着对手出对$\texttt{4}$,这时以下对子可以打 $\texttt{55}$, $\texttt{QQ}$, $\texttt{66}$. 但是,我们要为下面的顺子着想, 比他大的顺子只有 5,6,7,8,9或6,7,8,9,10. 所以我们只能打出$\texttt{QQ}$或 $\texttt{55}$得到一分 然后对手打出3,4,5,6,7,我们再打出6,7,8,9,10,得到一分 接着对手出$\texttt{1}$,我们可以选择用$\texttt{2}$ 或 $\texttt{Joker}$得到一分,但是对面还要打出$\texttt{joker}$ ,所以为了应对对手的$\texttt{joker}$,这时只能打出$\texttt{2}$,得到一分 最后对手打出$\texttt{joker}$,我们只需打出$\texttt{Joker}$就可以了,得到一分