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

dp=[[0 for j in range(M+1)] for i in range(N+1)]
Sum=[[0 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):
		if S[i-1]==T[j-1]:
			dp[i][j]=Sum[i-1][j-1]
#			for k in range(1,i):
#				for l in range(1,j):
#					dp[i][j]+=dp[k][l]
			dp[i][j]+=1
		Sum[i][j]=(Sum[i-1][j]+Sum[i][j-1]-Sum[i-1][j-1]+dp[i][j])%mod

print(Sum[N][M]+1) 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 mod=1000000007 mod 1000000007 [0 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) [0 for j in range(M+1)] dp=[[0 for j in range(M+1)] for i in range(N+1)] dp [[0 for j in range(M+1)] for i in range(N+1)] [0 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) [0 for j in range(M+1)] Sum=[[0 for j in range(M+1)] for i in range(N+1)] Sum [[0 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):
		if S[i-1]==T[j-1]:
			dp[i][j]=Sum[i-1][j-1]
#			for k in range(1,i):
#				for l in range(1,j):
#					dp[i][j]+=dp[k][l]
			dp[i][j]+=1
		Sum[i][j]=(Sum[i-1][j]+Sum[i][j-1]-Sum[i-1][j-1]+dp[i][j])%mod i range(1,N+1) range 1 N+1 N 1 for j in range(1,M+1):
		if S[i-1]==T[j-1]:
			dp[i][j]=Sum[i-1][j-1]
#			for k in range(1,i):
#				for l in range(1,j):
#					dp[i][j]+=dp[k][l]
			dp[i][j]+=1
		Sum[i][j]=(Sum[i-1][j]+Sum[i][j-1]-Sum[i-1][j-1]+dp[i][j])%mod j range(1,M+1) range 1 M+1 M 1 if S[i-1]==T[j-1]:
			dp[i][j]=Sum[i-1][j-1]
#			for k in range(1,i):
#				for l in range(1,j):
#					dp[i][j]+=dp[k][l]
			dp[i][j]+=1
		 S[i-1]==T[j-1] S[i-1] S i-1 i 1 T[j-1] T j-1 j 1 dp[i][j]=Sum[i-1][j-1] dp[i][j] [i] dp i j Sum[i-1][j-1] [i-1] Sum i-1 i 1 j-1 j 1 dp[i][j]+=1 dp[i][j] [i] dp i j 1 Sum[i][j]=(Sum[i-1][j]+Sum[i][j-1]-Sum[i-1][j-1]+dp[i][j])%mod Sum[i][j] [i] Sum i j (Sum[i-1][j]+Sum[i][j-1]-Sum[i-1][j-1]+dp[i][j])%mod Sum[i-1][j]+Sum[i][j-1]-Sum[i-1][j-1]+dp[i][j] Sum[i-1][j]+Sum[i][j-1]-Sum[i-1][j-1] Sum[i-1][j]+Sum[i][j-1] Sum[i-1][j] [i-1] Sum i-1 i 1 j Sum[i][j-1] [i] Sum i j-1 j 1 Sum[i-1][j-1] [i-1] Sum i-1 i 1 j-1 j 1 dp[i][j] [i] dp i j mod print(Sum[N][M]+1) print Sum[N][M]+1 Sum[N][M] [N] Sum N M 1 S=list(map(int,input().split())) list(map(int,input().split())) S N,M=map(int,input().split()) map(int,input().split()) N M=map(int,input().split()) map(int,input().split()) M Sum=[[0 for j in range(M+1)] for i in range(N+1)] [[0 for j in range(M+1)] for i in range(N+1)] Sum T=list(map(int,input().split())) list(map(int,input().split())) T mod=1000000007 1000000007 mod dp=[[0 for j in range(M+1)] for i in range(N+1)] [[0 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()))
mod=1000000007

dp=[[0 for j in range(M+1)] for i in range(N+1)]
Sum=[[0 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):
		if S[i-1]==T[j-1]:
			dp[i][j]=Sum[i-1][j-1]
#			for k in range(1,i):
#				for l in range(1,j):
#					dp[i][j]+=dp[k][l]
			dp[i][j]+=1
		Sum[i][j]=(Sum[i-1][j]+Sum[i][j-1]-Sum[i-1][j-1]+dp[i][j])%mod

print(Sum[N][M]+1)