n, m = map(int, input().split())
s = list(map(int, input().split()))
t = list(map(int, input().split()))
mod = 10**9 + 7

dp = [[1] * (m+1) for _ in range(n+1)]

for i in range(n):
    for j in range(m):
        dp[i+1][j+1] = dp[i][j+1] + dp[i+1][j] - dp[i][j]
        dp[i+1][j+1] %= mod
        if s[i] == t[j]:
            dp[i+1][j+1] += dp[i][j]
            dp[i+1][j+1] %= mod

print(dp[n][m]) 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 mod = 10**9 + 7 mod 10**9 + 7 10**9 10 9 7 [1] * (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) [1] * (m+1) [1] 1 m+1 m 1 dp = [[1] * (m+1) for _ in range(n+1)] dp [[1] * (m+1) for _ in range(n+1)] for i in range(n):
    for j in range(m):
        dp[i+1][j+1] = dp[i][j+1] + dp[i+1][j] - dp[i][j]
        dp[i+1][j+1] %= mod
        if s[i] == t[j]:
            dp[i+1][j+1] += dp[i][j]
            dp[i+1][j+1] %= mod i range(n) range n for j in range(m):
        dp[i+1][j+1] = dp[i][j+1] + dp[i+1][j] - dp[i][j]
        dp[i+1][j+1] %= mod
        if s[i] == t[j]:
            dp[i+1][j+1] += dp[i][j]
            dp[i+1][j+1] %= mod j range(m) range m dp[i+1][j+1] = dp[i][j+1] + dp[i+1][j] - dp[i][j] dp[i+1][j+1] [i+1] dp i+1 i 1 j+1 j 1 dp[i][j+1] + dp[i+1][j] - dp[i][j] dp[i][j+1] + dp[i+1][j] dp[i][j+1] [i] dp i j+1 j 1 dp[i+1][j] [i+1] dp i+1 i 1 j dp[i][j] [i] dp i j dp[i+1][j+1] %= mod dp[i+1][j+1] [i+1] dp i+1 i 1 j+1 j 1 mod if s[i] == t[j]:
            dp[i+1][j+1] += dp[i][j]
            dp[i+1][j+1] %= mod s[i] == t[j] s[i] s i t[j] t j dp[i+1][j+1] += dp[i][j] dp[i+1][j+1] [i+1] dp i+1 i 1 j+1 j 1 dp[i][j] [i] dp i j dp[i+1][j+1] %= mod dp[i+1][j+1] [i+1] dp i+1 i 1 j+1 j 1 mod print(dp[n][m]) print dp[n][m] [n] dp n m m = map(int, input().split()) map(int, input().split()) m s = list(map(int, input().split())) list(map(int, input().split())) s dp = [[1] * (m+1) for _ in range(n+1)] [[1] * (m+1) for _ in range(n+1)] dp n, m = map(int, input().split()) map(int, input().split()) n t = list(map(int, input().split())) list(map(int, input().split())) t mod = 10**9 + 7 10**9 + 7 mod
n, m = map(int, input().split())
s = list(map(int, input().split()))
t = list(map(int, input().split()))
mod = 10**9 + 7

dp = [[1] * (m+1) for _ in range(n+1)]

for i in range(n):
    for j in range(m):
        dp[i+1][j+1] = dp[i][j+1] + dp[i+1][j] - dp[i][j]
        dp[i+1][j+1] %= mod
        if s[i] == t[j]:
            dp[i+1][j+1] += dp[i][j]
            dp[i+1][j+1] %= mod

print(dp[n][m])
