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

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

print(cum[n][m])