#!/usr/bin/env python3

MOD = 10**9 + 7

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)]
for i in range(n + 1):
    dp[i][0] = 1
for j in range(m + 1):
    dp[0][j] = 1

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

print(dp[n][m])
 MOD = 10**9 + 7 MOD 10**9 + 7 10**9 10 9 7 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)] 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 in range(n):
    for j in range(m):
        dp[i + 1][j + 1] += dp[i + 1][j]
        dp[i + 1][j + 1] += dp[i][j + 1]
        dp[i + 1][j + 1] += -dp[i][j]
        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 + 1][j]
        dp[i + 1][j + 1] += dp[i][j + 1]
        dp[i + 1][j + 1] += -dp[i][j]
        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 + 1][j] dp[i + 1][j + 1] [i + 1] dp i + 1 i 1 j + 1 j 1 dp[i + 1][j] [i + 1] dp i + 1 i 1 j dp[i + 1][j + 1] += dp[i][j + 1] dp[i + 1][j + 1] [i + 1] dp i + 1 i 1 j + 1 j 1 dp[i][j + 1] [i] dp i j + 1 j 1 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] dp[i][j] [i] dp i j if s[i] == t[j]:
            dp[i + 1][j + 1] += dp[i][j]
         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 MOD = 10**9 + 7 10**9 + 7 MOD s = list(map(int, input().split())) list(map(int, input().split())) s n, m = map(int, input().split()) map(int, input().split()) n m = map(int, input().split()) map(int, input().split()) m t = list(map(int, input().split())) list(map(int, input().split())) t dp = [[0] * (m + 1) for _ in range(n + 1)] [[0] * (m + 1) for _ in range(n + 1)] dp
#!/usr/bin/env python3

MOD = 10**9 + 7

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)]
for i in range(n + 1):
    dp[i][0] = 1
for j in range(m + 1):
    dp[0][j] = 1

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

print(dp[n][m])

