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