MOD=10**9+7

N,M=map(int,input().split())
slist=list(map(int,input().split()))
tlist=list(map(int,input().split()))

dp,dp_sum=[],[]
for i in range(N+1):
  dp.append([0]*(M+1))
  dp_sum.append([1]*(M+1))
dp[0][0]=1
#print(dp)

for i in range(1,N+1):
  for j in range(1,M+1):
    if slist[i-1]==tlist[j-1]:
      dp[i][j]=dp_sum[i-1][j-1]      
    dp_sum[i][j]=(dp[i][j]+dp_sum[i-1][j]+dp_sum[i][j-1]-dp_sum[i-1][j-1])%MOD
#print(dp)
#print(dp_sum)

print(dp_sum[-1][-1]) 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 slist=list(map(int,input().split())) slist list(map(int,input().split())) list map(int,input().split()) map int input().split() ().split () input split tlist=list(map(int,input().split())) tlist list(map(int,input().split())) list map(int,input().split()) map int input().split() ().split () input split dp,dp_sum=[],[] dp [] dp_sum [] for i in range(N+1):
  dp.append([0]*(M+1))
  dp_sum.append([1]*(M+1)) i range(N+1) range N+1 N 1 dp.append([0]*(M+1)) dp.append dp append [0]*(M+1) [0] 0 M+1 M 1 dp_sum.append([1]*(M+1)) dp_sum.append dp_sum append [1]*(M+1) [1] 1 M+1 M 1 dp[0][0]=1 dp[0][0] [0] dp 0 0 1 for i in range(1,N+1):
  for j in range(1,M+1):
    if slist[i-1]==tlist[j-1]:
      dp[i][j]=dp_sum[i-1][j-1]      
    dp_sum[i][j]=(dp[i][j]+dp_sum[i-1][j]+dp_sum[i][j-1]-dp_sum[i-1][j-1])%MOD
#print(dp)
#print(dp_sum) i range(1,N+1) range 1 N+1 N 1 for j in range(1,M+1):
    if slist[i-1]==tlist[j-1]:
      dp[i][j]=dp_sum[i-1][j-1]      
    dp_sum[i][j]=(dp[i][j]+dp_sum[i-1][j]+dp_sum[i][j-1]-dp_sum[i-1][j-1])%MOD
#print(dp)
#print(dp_sum) j range(1,M+1) range 1 M+1 M 1 if slist[i-1]==tlist[j-1]:
      dp[i][j]=dp_sum[i-1][j-1]      
     slist[i-1]==tlist[j-1] slist[i-1] slist i-1 i 1 tlist[j-1] tlist j-1 j 1 dp[i][j]=dp_sum[i-1][j-1] dp[i][j] [i] dp i j dp_sum[i-1][j-1] [i-1] dp_sum i-1 i 1 j-1 j 1 dp_sum[i][j]=(dp[i][j]+dp_sum[i-1][j]+dp_sum[i][j-1]-dp_sum[i-1][j-1])%MOD dp_sum[i][j] [i] dp_sum i j (dp[i][j]+dp_sum[i-1][j]+dp_sum[i][j-1]-dp_sum[i-1][j-1])%MOD dp[i][j]+dp_sum[i-1][j]+dp_sum[i][j-1]-dp_sum[i-1][j-1] dp[i][j]+dp_sum[i-1][j]+dp_sum[i][j-1] dp[i][j]+dp_sum[i-1][j] dp[i][j] [i] dp i j dp_sum[i-1][j] [i-1] dp_sum i-1 i 1 j dp_sum[i][j-1] [i] dp_sum i j-1 j 1 dp_sum[i-1][j-1] [i-1] dp_sum i-1 i 1 j-1 j 1 MOD print(dp_sum[-1][-1]) print dp_sum[-1][-1] [-1] dp_sum -1 -1 slist=list(map(int,input().split())) list(map(int,input().split())) slist MOD=10**9+7 10**9+7 MOD N,M=map(int,input().split()) map(int,input().split()) N dp,dp_sum=[],[] [] dp tlist=list(map(int,input().split())) list(map(int,input().split())) tlist M=map(int,input().split()) map(int,input().split()) M dp_sum=[],[] [] dp_sum
MOD=10**9+7

N,M=map(int,input().split())
slist=list(map(int,input().split()))
tlist=list(map(int,input().split()))

dp,dp_sum=[],[]
for i in range(N+1):
  dp.append([0]*(M+1))
  dp_sum.append([1]*(M+1))
dp[0][0]=1
#print(dp)

for i in range(1,N+1):
  for j in range(1,M+1):
    if slist[i-1]==tlist[j-1]:
      dp[i][j]=dp_sum[i-1][j-1]      
    dp_sum[i][j]=(dp[i][j]+dp_sum[i-1][j]+dp_sum[i][j-1]-dp_sum[i-1][j-1])%MOD
#print(dp)
#print(dp_sum)

print(dp_sum[-1][-1])