n, m = map(int, input().split())
s = list(map(int, input().split()))
t = list(map(int, input().split()))
dp = [[0] * (m + 1) for _ in range(n + 1)]
dpsum = [[0] * (m + 1) for _ in range(n + 1)]
mod = pow(10, 9) + 7
for i in range(1, n + 1):
    for j in range(1, m + 1):
        if s[i - 1] == t[j - 1]:
            dp[i][j] = 1
            if not i == 1 and not j == 1:
                dp[i][j] += dpsum[i - 1][j - 1]
                dp[i][j] %= mod
        dpsum[i][j] = dpsum[i - 1][j] + dpsum[i][j - 1] - dpsum[i - 1][j - 1] + dp[i][j]
        dpsum[i][j] %= mod
ans = dpsum[n][m] + 1
print(ans) n, m = map(int, input().split()) n map(int, input().split()) map int input().split() ().split () input split m s = list(map(int, input().split())) s list(map(int, input().split())) list map(int, input().split()) map int input().split() ().split () input split t = list(map(int, input().split())) t list(map(int, input().split())) list map(int, input().split()) map int input().split() ().split () input split [0] * (m + 1) for _ in range(n + 1) for _ in range(n + 1) _ range(n + 1) range n + 1 n 1 for _ in range(n + 1) [0] * (m + 1) [0] 0 m + 1 m 1 dp = [[0] * (m + 1) for _ in range(n + 1)] dp [[0] * (m + 1) for _ in range(n + 1)] [0] * (m + 1) for _ in range(n + 1) for _ in range(n + 1) _ range(n + 1) range n + 1 n 1 for _ in range(n + 1) [0] * (m + 1) [0] 0 m + 1 m 1 dpsum = [[0] * (m + 1) for _ in range(n + 1)] dpsum [[0] * (m + 1) for _ in range(n + 1)] mod = pow(10, 9) + 7 mod pow(10, 9) + 7 pow(10, 9) pow 10 9 7 for i in range(1, n + 1):
    for j in range(1, m + 1):
        if s[i - 1] == t[j - 1]:
            dp[i][j] = 1
            if not i == 1 and not j == 1:
                dp[i][j] += dpsum[i - 1][j - 1]
                dp[i][j] %= mod
        dpsum[i][j] = dpsum[i - 1][j] + dpsum[i][j - 1] - dpsum[i - 1][j - 1] + dp[i][j]
        dpsum[i][j] %= mod i range(1, n + 1) range 1 n + 1 n 1 for j in range(1, m + 1):
        if s[i - 1] == t[j - 1]:
            dp[i][j] = 1
            if not i == 1 and not j == 1:
                dp[i][j] += dpsum[i - 1][j - 1]
                dp[i][j] %= mod
        dpsum[i][j] = dpsum[i - 1][j] + dpsum[i][j - 1] - dpsum[i - 1][j - 1] + dp[i][j]
        dpsum[i][j] %= mod j range(1, m + 1) range 1 m + 1 m 1 if s[i - 1] == t[j - 1]:
            dp[i][j] = 1
            if not i == 1 and not j == 1:
                dp[i][j] += dpsum[i - 1][j - 1]
                dp[i][j] %= mod
         s[i - 1] == t[j - 1] s[i - 1] s i - 1 i 1 t[j - 1] t j - 1 j 1 dp[i][j] = 1 dp[i][j] [i] dp i j 1 if not i == 1 and not j == 1:
                dp[i][j] += dpsum[i - 1][j - 1]
                dp[i][j] %= mod
         not i == 1 and not j == 1 not i == 1 i == 1 i 1 not j == 1 j == 1 j 1 dp[i][j] += dpsum[i - 1][j - 1] dp[i][j] [i] dp i j dpsum[i - 1][j - 1] [i - 1] dpsum i - 1 i 1 j - 1 j 1 dp[i][j] %= mod dp[i][j] [i] dp i j mod dpsum[i][j] = dpsum[i - 1][j] + dpsum[i][j - 1] - dpsum[i - 1][j - 1] + dp[i][j] dpsum[i][j] [i] dpsum i j dpsum[i - 1][j] + dpsum[i][j - 1] - dpsum[i - 1][j - 1] + dp[i][j] dpsum[i - 1][j] + dpsum[i][j - 1] - dpsum[i - 1][j - 1] dpsum[i - 1][j] + dpsum[i][j - 1] dpsum[i - 1][j] [i - 1] dpsum i - 1 i 1 j dpsum[i][j - 1] [i] dpsum i j - 1 j 1 dpsum[i - 1][j - 1] [i - 1] dpsum i - 1 i 1 j - 1 j 1 dp[i][j] [i] dp i j dpsum[i][j] %= mod dpsum[i][j] [i] dpsum i j mod ans = dpsum[n][m] + 1 ans dpsum[n][m] + 1 dpsum[n][m] [n] dpsum n m 1 print(ans) print ans dp = [[0] * (m + 1) for _ in range(n + 1)] [[0] * (m + 1) for _ in range(n + 1)] dp s = list(map(int, input().split())) list(map(int, input().split())) s m = map(int, input().split()) map(int, input().split()) m dpsum = [[0] * (m + 1) for _ in range(n + 1)] [[0] * (m + 1) for _ in range(n + 1)] dpsum t = list(map(int, input().split())) list(map(int, input().split())) t n, m = map(int, input().split()) map(int, input().split()) n mod = pow(10, 9) + 7 pow(10, 9) + 7 mod ans = dpsum[n][m] + 1 dpsum[n][m] + 1 ans
n, m = map(int, input().split())
s = list(map(int, input().split()))
t = list(map(int, input().split()))
dp = [[0] * (m + 1) for _ in range(n + 1)]
dpsum = [[0] * (m + 1) for _ in range(n + 1)]
mod = pow(10, 9) + 7
for i in range(1, n + 1):
    for j in range(1, m + 1):
        if s[i - 1] == t[j - 1]:
            dp[i][j] = 1
            if not i == 1 and not j == 1:
                dp[i][j] += dpsum[i - 1][j - 1]
                dp[i][j] %= mod
        dpsum[i][j] = dpsum[i - 1][j] + dpsum[i][j - 1] - dpsum[i - 1][j - 1] + dp[i][j]
        dpsum[i][j] %= mod
ans = dpsum[n][m] + 1
print(ans)