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

dp = [[1 for j in range(M+1)] for i in range(N+1)]

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

dp = [[1 for j in range(M+1)] for i in range(N+1)]

for i in range(1,N+1) :
    for j in range(1,M+1) :
        dp[i][j] = dp[i-1][j] + dp[i][j-1] - (dp[i-1][j-1] if S[i-1] != T[j-1] else 0)
        dp[i][j] %= 10**9+7
ans = dp[N][M]

print(ans)
