n,m=map(int,input().split())
s=list(map(int,input().split()))
t=list(map(int,input().split()))
dp=[[0]*(m+1) for _ in range(n+1)]
for i in range(n+1):
  dp[i][0]=1
for i in range(m+1):
  dp[0][i]=1
mod=pow(10,9)+7
for i in range(n):
  for j in range(m):
    dp[i+1][j+1]=sum((dp[i][j+1],dp[i+1][j],-dp[i][j]))%mod
    if s[i]==t[j]:dp[i+1][j+1]+=dp[i][j]
    dp[i+1][j+1]%=mod
print(dp[-1][-1])
#print(dp) 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 _ 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)] for i in range(n+1):
  dp[i][0]=1 i range(n+1) range n+1 n 1 dp[i][0]=1 dp[i][0] [i] dp i 0 1 for i in range(m+1):
  dp[0][i]=1 i range(m+1) range m+1 m 1 dp[0][i]=1 dp[0][i] [0] dp 0 i 1 mod=pow(10,9)+7 mod pow(10,9)+7 pow(10,9) pow 10 9 7 for i in range(n):
  for j in range(m):
    dp[i+1][j+1]=sum((dp[i][j+1],dp[i+1][j],-dp[i][j]))%mod
    if s[i]==t[j]:dp[i+1][j+1]+=dp[i][j]
    dp[i+1][j+1]%=mod i range(n) range n for j in range(m):
    dp[i+1][j+1]=sum((dp[i][j+1],dp[i+1][j],-dp[i][j]))%mod
    if s[i]==t[j]:dp[i+1][j+1]+=dp[i][j]
    dp[i+1][j+1]%=mod j range(m) range m dp[i+1][j+1]=sum((dp[i][j+1],dp[i+1][j],-dp[i][j]))%mod dp[i+1][j+1] [i+1] dp i+1 i 1 j+1 j 1 sum((dp[i][j+1],dp[i+1][j],-dp[i][j]))%mod sum((dp[i][j+1],dp[i+1][j],-dp[i][j])) sum (dp[i][j+1],dp[i+1][j],-dp[i][j]) dp[i][j+1] [i] dp i j+1 j 1 dp[i+1][j] [i+1] dp i+1 i 1 j -dp[i][j] dp[i][j] [i] dp i j mod if s[i]==t[j]:dp[i+1][j+1]+=dp[i][j]
     s[i]==t[j] s[i] s i t[j] t j dp[i+1][j+1]%=mod dp[i+1][j+1] [i+1] dp i+1 i 1 j+1 j 1 mod print(dp[-1][-1]) print dp[-1][-1] [-1] dp -1 -1 n,m=map(int,input().split()) map(int,input().split()) n mod=pow(10,9)+7 pow(10,9)+7 mod t=list(map(int,input().split())) list(map(int,input().split())) t m=map(int,input().split()) map(int,input().split()) m s=list(map(int,input().split())) list(map(int,input().split())) s dp=[[0]*(m+1) for _ in range(n+1)] [[0]*(m+1) for _ in range(n+1)] dp
n,m=map(int,input().split())
s=list(map(int,input().split()))
t=list(map(int,input().split()))
dp=[[0]*(m+1) for _ in range(n+1)]
for i in range(n+1):
  dp[i][0]=1
for i in range(m+1):
  dp[0][i]=1
mod=pow(10,9)+7
for i in range(n):
  for j in range(m):
    dp[i+1][j+1]=sum((dp[i][j+1],dp[i+1][j],-dp[i][j]))%mod
    if s[i]==t[j]:dp[i+1][j+1]+=dp[i][j]
    dp[i+1][j+1]%=mod
print(dp[-1][-1])
#print(dp)