mod = 10 ** 9 + 7

N, M = map(int, input().split())
S = input().split()
T = input().split()

dp = [[0] * (M + 1) for _ in range(N + 1)]
dp[0][0] = 1

for i in range(N + 1):
    for j in range(M + 1):
        if 1 <= i and 1 <= j and S[i - 1] == T[j - 1]:
            dp[i][j] += dp[i - 1][j - 1]
        if 1 <= i:
            dp[i][j] += dp[i - 1][j]
        if 1 <= j:
            dp[i][j] += dp[i][j - 1]
        if 1 <= i and 1 <= j:
            dp[i][j] -= dp[i - 1][j - 1]
        dp[i][j] %= 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 = input().split() S input().split() ().split () input split T = input().split() T 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)] dp[0][0] = 1 dp[0][0] [0] dp 0 0 1 for i in range(N + 1):
    for j in range(M + 1):
        if 1 <= i and 1 <= j and S[i - 1] == T[j - 1]:
            dp[i][j] += dp[i - 1][j - 1]
        if 1 <= i:
            dp[i][j] += dp[i - 1][j]
        if 1 <= j:
            dp[i][j] += dp[i][j - 1]
        if 1 <= i and 1 <= j:
            dp[i][j] -= dp[i - 1][j - 1]
        dp[i][j] %= mod i range(N + 1) range N + 1 N 1 for j in range(M + 1):
        if 1 <= i and 1 <= j and S[i - 1] == T[j - 1]:
            dp[i][j] += dp[i - 1][j - 1]
        if 1 <= i:
            dp[i][j] += dp[i - 1][j]
        if 1 <= j:
            dp[i][j] += dp[i][j - 1]
        if 1 <= i and 1 <= j:
            dp[i][j] -= dp[i - 1][j - 1]
        dp[i][j] %= mod j range(M + 1) range M + 1 M 1 if 1 <= i and 1 <= j and S[i - 1] == T[j - 1]:
            dp[i][j] += dp[i - 1][j - 1]
         1 <= i and 1 <= j and S[i - 1] == T[j - 1] 1 <= i and 1 <= j 1 <= i 1 i 1 <= j 1 j 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] += 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 if 1 <= i:
            dp[i][j] += dp[i - 1][j]
         1 <= i 1 i dp[i][j] += dp[i - 1][j] dp[i][j] [i] dp i j dp[i - 1][j] [i - 1] dp i - 1 i 1 j if 1 <= j:
            dp[i][j] += dp[i][j - 1]
         1 <= j 1 j dp[i][j] += dp[i][j - 1] dp[i][j] [i] dp i j dp[i][j - 1] [i] dp i j - 1 j 1 if 1 <= i and 1 <= j:
            dp[i][j] -= dp[i - 1][j - 1]
         1 <= i and 1 <= j 1 <= i 1 i 1 <= j 1 j 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 print(dp[N][M]) print dp[N][M] [N] dp N M dp = [[0] * (M + 1) for _ in range(N + 1)] [[0] * (M + 1) for _ in range(N + 1)] dp T = input().split() input().split() T N, M = map(int, input().split()) map(int, input().split()) N mod = 10 ** 9 + 7 10 ** 9 + 7 mod M = map(int, input().split()) map(int, input().split()) M S = input().split() input().split() S
mod = 10 ** 9 + 7

N, M = map(int, input().split())
S = input().split()
T = input().split()

dp = [[0] * (M + 1) for _ in range(N + 1)]
dp[0][0] = 1

for i in range(N + 1):
    for j in range(M + 1):
        if 1 <= i and 1 <= j and S[i - 1] == T[j - 1]:
            dp[i][j] += dp[i - 1][j - 1]
        if 1 <= i:
            dp[i][j] += dp[i - 1][j]
        if 1 <= j:
            dp[i][j] += dp[i][j - 1]
        if 1 <= i and 1 <= j:
            dp[i][j] -= dp[i - 1][j - 1]
        dp[i][j] %= mod

print(dp[N][M])
