我们称一个数字序列 $x(1), x(2), \dots, x(k)$ 为 zigzag 序列,如果其中任意三个连续元素都不构成非递增或非递减序列。更准确地说,对于所有 $i = 1, 2, \dots, k-2$,必须满足 $x(i+1) < x(i)$ 且 $x(i+1) < x(i+2)$,或者 $x(i+1) > x(i)$ 且 $x(i+1) > x(i+2)$。
给定两个数字序列 $a(1), a(2), \dots, a(n)$ 和 $b(1), b(2), \dots, b(m)$。本题要求计算它们的最长公共 zigzag 子序列的长度。换句话说,你需要从两个序列中删除若干元素,使得剩余部分相等,且剩余的序列是一个 zigzag 序列。如果你必须删除的最少元素个数为 $k$,那么你的答案就是 $m + n - k$。
输入格式
第一行包含第一个序列的长度 $n$ ($1 \le n \le 2000$),随后是 $n$ 个整数 $a(1), a(2), \dots, a(n)$。
第二行包含第二个序列的长度 $m$ ($1 \le m \le 2000$),随后是 $m$ 个整数 $b(1), b(2), \dots, b(m)$。
所有的 $a(i)$ 和 $b(i)$ 都在 $[-10^9, 10^9]$ 范围内。
输出格式
输出一行,包含 $a$ 和 $b$ 的最长公共 zigzag 子序列的长度。
样例
输入格式 1
5 1 2 5 4 3 5 4 1 2 5 3
输出格式 1
3