atcoder#ABC130E. [ABC130E] Common Subsequence

[ABC130E] Common Subsequence

Score : 500500 points

Problem Statement

You are given two integer sequences SS and TT of length NN and MM, respectively, both consisting of integers between 11 and 10510^5 (inclusive).

In how many pairs of a subsequence of SS and a subsequence of TT do the two subsequences are the same in content?

Here the subsequence of AA is a sequence obtained by removing zero or more elements from AA and concatenating the remaining elements without changing the order.

For both SS and TT, 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 109+710^9+7.

Constraints

  • 1N,M2×1031 \leq N, M \leq 2 \times 10^3
  • The length of SS is NN.
  • The length of TT is MM.
  • 1Si,Ti1051 \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:

NN MM

S1S_1 S2S_2 ...... SN1S_{N-1} SNS_{N}

T1T_1 T2T_2 ...... TM1T_{M-1} TMT_{M}

Output

Print the number of pairs of a subsequence of SS and a subsequence of TT such that the subsequences are the same in content, modulo 109+710^9+7.

2 2
1 3
3 1
3

SS has four subsequences: (),(1),(3),(1,3)(), (1), (3), (1, 3).

TT has four subsequences: (),(3),(1),(3,1)(), (3), (1), (3, 1).

There are 1×11 \times 1 pair of subsequences in which the subsequences are both ()(), 1×11 \times 1 pair of subsequences in which the subsequences are both (1)(1), and 1×11 \times 1 pair of subsequences in which the subsequences are both (3)(3), for a total of three pairs.

2 2
1 1
1 1
6

SS has four subsequences: (),(1),(1),(1,1)(), (1), (1), (1, 1).

TT has four subsequences: (),(1),(1),(1,1)(), (1), (1), (1, 1).

There are 1×11 \times 1 pair of subsequences in which the subsequences are both ()(), 2×22 \times 2 pairs of subsequences in which the subsequences are both (1)(1), and 1×11 \times 1 pair of subsequences in which the subsequences are both (1,1)(1,1), for a total of six pairs. Note again that 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.

4 4
3 4 5 6
3 4 5 6
16
10 9
9 6 5 7 5 9 8 5 6 7
8 6 8 5 5 7 9 9 7
191
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
846527861

Be sure to print the number modulo 109+710^9+7.