#D5216. Common Subsequence
Common Subsequence
Common Subsequence
You are given two integer sequences S and T of length N and M, respectively, both consisting of integers between 1 and 10^5 (inclusive).
In how many pairs of a subsequence of S and a subsequence of T do the two subsequences are the same in content?
Here the subsequence of A is a sequence obtained by removing zero or more elements from A and concatenating the remaining elements without changing the order.
For both S and T, we distinguish two subsequences if the sets of the indices of the removed elements are different, even if the subsequences are the same in content.
Since the answer can be tremendous, print the number modulo 10^9+7.
Constraints
- 1 \leq N, M \leq 2 \times 10^3
- The length of S is N.
- The length of T is M.
- 1 \leq S_i, T_i \leq 10^5
- All values in input are integers.
Input
Input is given from Standard Input in the following format:
N M S_1 S_2 ... S_{N-1} S_{N} T_1 T_2 ... T_{M-1} T_{M}
Output
Print the number of pairs of a subsequence of S and a subsequence of T such that the subsequences are the same in content, modulo 10^9+7.
Examples
Input
2 2 1 3 3 1
Output
3
Input
2 2 1 1 1 1
Output
6
Input
4 4 3 4 5 6 3 4 5 6
Output
16
Input
10 9 9 6 5 7 5 9 8 5 6 7 8 6 8 5 5 7 9 9 7
Output
191
Input
20 20 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Output
846527861
inputFormat
input are integers.
Input
Input is given from Standard Input in the following format:
N M S_1 S_2 ... S_{N-1} S_{N} T_1 T_2 ... T_{M-1} T_{M}
outputFormat
Output
Print the number of pairs of a subsequence of S and a subsequence of T such that the subsequences are the same in content, modulo 10^9+7.
Examples
Input
2 2 1 3 3 1
Output
3
Input
2 2 1 1 1 1
Output
6
Input
4 4 3 4 5 6 3 4 5 6
Output
16
Input
10 9 9 6 5 7 5 9 8 5 6 7 8 6 8 5 5 7 9 9 7
Output
191
Input
20 20 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Output
846527861
样例
10 9
9 6 5 7 5 9 8 5 6 7
8 6 8 5 5 7 9 9 7
191