题目描述
有很多张卡牌,每张卡牌上都写着一个 $1$ 到 $1000$ 之间的整数。安娜(Anna)和布鲁诺(Bruno)使用这些卡牌玩下面的游戏。
安娜有一叠由 $A$ 张卡牌组成的牌堆,布鲁诺有一叠由 $B$ 张卡牌组成的牌堆。安娜从她的 $A$ 张卡牌中丢弃任意数量的卡牌(也可以是 $0$ 张)来组成一个新的牌堆。布鲁诺从他由 $B$ 张卡牌组成的牌堆的顶部丢弃若干张卡牌(也可以是 $0$ 张),并从底部丢弃若干张卡牌(也可以是 $0$ 张)来组成一个新的牌堆。但是,在丢弃卡牌时,不会改变剩余卡牌的顺序。如果以这种方式得到的 $2$ 个牌堆一致,那么其中一个牌堆所包含的卡牌张数就成为这 $2$ 名玩家的得分。这里,称 $2$ 个牌堆一致,是指两个牌堆各自包含的卡牌张数 $n$ 相同,并且对于从上往下的第 $i$ 张卡牌($1 \le i \le n$),卡牌上所写的整数全都相同。
例如,假设安娜有一叠 $5$ 张卡牌的牌堆,从上往下依次写着整数 $1, 2, 3, 4, 5$;布鲁诺有一叠 $4$ 张卡牌的牌堆,从上往下依次写着整数 $3, 1, 4, 1$。此时,如果安娜丢弃卡牌 $2, 3, 5$,且布鲁诺丢弃最上面的卡牌 $3$ 和最下面的卡牌 $1$,那么这 $2$ 名玩家的牌堆就一致了。此时,由于剩余的一个牌堆中包含的卡牌张数为 $2$,这 $2$ 名玩家得到 $2$ 分。

我们想要找出这 $2$ 名玩家得分的最大值。
任务
给定安娜和布鲁诺所持有的卡牌牌堆的信息,请编写一个程序,求出这 $2$ 名玩家得分的最大值。
限制
- $1 \le A \le 5000$:安娜牌堆中的卡牌张数。
- $1 \le B \le 5000$:布鲁诺牌堆中的卡牌张数。
- 卡牌上所写的整数在 $1$ 到 $1000$ 之间(含两端)。
输入格式
从标准输入读取以下数据。
- 第 $1$ 行写有以空格分隔的整数 $A, B$。
- 第 $2$ 行写有以空格分隔的 $A$ 个整数;第 $i$ 个整数($1 \le i \le A$)表示安娜的牌堆中从上往下第 $i$ 张卡牌上所写的整数。
- 第 $3$ 行写有以空格分隔的 $B$ 个整数;第 $j$ 个整数($1 \le j \le B$)表示布鲁诺的牌堆中从上往下第 $j$ 张卡牌上所写的整数。
输出格式
向标准输出输出 $1$ 行,表示这 $2$ 名玩家得分的最大值的整数。
子任务
- 在占总分 $10\%$ 的评测数据中,满足 $A \le 10, B \le 10$。
- 在占总分 $50\%$ 的评测数据中,满足 $A \le 100, B \le 100$。
样例 1
输入
5 4 1 2 3 4 5 3 1 4 1
输出
2
该样例对应题目描述中的例子。
样例 2
输入
6 5 4 1 5 2 3 4 4 5 4 2 3
输出
3
在该样例中,这 $2$ 名玩家有 $2$ 种方式可以得到 $3$ 分。
- 当安娜丢弃卡牌 $1, 2, 3$,且布鲁诺丢弃卡牌 $2, 3$ 时,这 $2$ 名玩家的牌堆从上往下都变成 $4, 5, 4$,这 $2$ 名玩家的得分为 $3$ 分。
- 另外,当安娜丢弃卡牌 $1, 5, 4$,且布鲁诺丢弃顶部的卡牌 $4$ 和 $5$ 时,这 $2$ 名玩家的牌堆从上往下都变成 $4, 2, 3$,这 $2$ 名玩家的得分为 $3$ 分。