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

dp = [[0] * (m + 1) for _ in range(n + 1)]
for i in range(n + 1):
    dp[i][0] = 1
for j in range(m + 1):
    dp[0][j] = 1

for i, ei in enumerate(s, 1):
    for j, ej in enumerate(t, 1):
        dp[i][j] = dp[i-1][j] + dp[i][j-1] - dp[i-1][j-1]
        if ei == ej:
            dp[i][j] += dp[i-1][j-1]

        dp[i][j] %= mod

ans = dp[n][m]
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 mod = 10 ** 9 + 7 mod 10 ** 9 + 7 10 ** 9 10 9 7 [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)] for i in range(n + 1):
    dp[i][0] = 1 i range(n + 1) range n + 1 n 1 dp[i][0] = 1 dp[i][0] [i] dp i 0 1 for j in range(m + 1):
    dp[0][j] = 1 j range(m + 1) range m + 1 m 1 dp[0][j] = 1 dp[0][j] [0] dp 0 j 1 for i, ei in enumerate(s, 1):
    for j, ej in enumerate(t, 1):
        dp[i][j] = dp[i-1][j] + dp[i][j-1] - dp[i-1][j-1]
        if ei == ej:
            dp[i][j] += dp[i-1][j-1]

        dp[i][j] %= mod i ei enumerate(s, 1) enumerate s 1 for j, ej in enumerate(t, 1):
        dp[i][j] = dp[i-1][j] + dp[i][j-1] - dp[i-1][j-1]
        if ei == ej:
            dp[i][j] += dp[i-1][j-1]

        dp[i][j] %= mod j ej enumerate(t, 1) enumerate t 1 dp[i][j] = dp[i-1][j] + dp[i][j-1] - dp[i-1][j-1] dp[i][j] [i] dp i j dp[i-1][j] + dp[i][j-1] - dp[i-1][j-1] dp[i-1][j] + dp[i][j-1] dp[i-1][j] [i-1] dp i-1 i 1 j dp[i][j-1] [i] dp i j-1 j 1 dp[i-1][j-1] [i-1] dp i-1 i 1 j-1 j 1 if ei == ej:
            dp[i][j] += dp[i-1][j-1]

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

dp = [[0] * (m + 1) for _ in range(n + 1)]
for i in range(n + 1):
    dp[i][0] = 1
for j in range(m + 1):
    dp[0][j] = 1

for i, ei in enumerate(s, 1):
    for j, ej in enumerate(t, 1):
        dp[i][j] = dp[i-1][j] + dp[i][j-1] - dp[i-1][j-1]
        if ei == ej:
            dp[i][j] += dp[i-1][j-1]

        dp[i][j] %= mod

ans = dp[n][m]
print(ans)
