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