给出两个仅由 $1,2,3$ 这三种数字组成的序列 $a_1,a_2,\dots,a_n$ 和 $b_1,b_2,\dots,b_m$,找到一个他们的最长的公共子序列 $c_1,c_2,\dots,c_k$,使得 $c_1 \le c_2 \le \dots \le c_k$。
输入有多组数据。第一行有一个整数$T$,表示测试数据组数。然后对于每组数据:
第一行包含两个正整数$n$和$m$ ($1 \le n, m \le 10^6$),表示两个序列的长度。
第二行包含$n$个整数 $a_1,a_2,\dots,a_n$ ($1 \le a_i \le 3$)。
第三行包含$m$个整数 $b_1,b_2,\dots,b_m$ ($1 \le b_i \le 3$)。
保证所有数据中 $\max\{n,m\}$ 的和不超过$10^6$。
对于每组数据,输出一个整数代表最长公共非递减子序列的长度。
4 3 3 1 2 3 1 2 3 3 3 1 1 1 1 1 2 3 3 1 3 2 1 2 3 4 3 3 3 1 2 3 2 1
3 2 2 1
在第一组数据中,满足叙述里条件的最长的公共子序列是 $1, 2, 3$。
在第二组数据中,满足叙述里条件的最长的公共子序列是 $1, 1$。
在第三组数据中,满足叙述里条件的最长的公共子序列是 $1, 2$ 或 $1, 3$。
在第四组数据中,满足叙述里条件的最长的公共子序列是 $1$ 或 $2$ 或 $3$。