MOD = 10 ** 9 + 7

n, m = map(int, input().split())
a = list(map(int, input().split()))
b = list(map(int, input().split()))

dp = [[0 for _ in range(m + 1)] for _ in range(n + 1)]
for i in range(1, n + 1):
    for j in range(1, m + 1):
        if a[i - 1] == b[j - 1]:
            dp[i][j] = (1 + dp[i - 1][j] + dp[i][j - 1]) % MOD
        else:
            dp[i][j] = (dp[i - 1][j] + dp[i][j - 1] - dp[i - 1][j - 1]) % MOD

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

n, m = map(int, input().split())
a = list(map(int, input().split()))
b = list(map(int, input().split()))

dp = [[0 for _ in range(m + 1)] for _ in range(n + 1)]
for i in range(1, n + 1):
    for j in range(1, m + 1):
        if a[i - 1] == b[j - 1]:
            dp[i][j] = (1 + dp[i - 1][j] + dp[i][j - 1]) % MOD
        else:
            dp[i][j] = (dp[i - 1][j] + dp[i][j - 1] - dp[i - 1][j - 1]) % MOD

print((dp[n][m] + 1) % MOD)