MOD = 10**9 + 7

n,m = (int(num) for num in input().split())
s = [int(num) for num in input().split()]
t = [int(num) for num in input().split()]

dp = [[1]*(m+1) for _ in range(n+1)]

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

n,m = (int(num) for num in input().split())
s = [int(num) for num in input().split()]
t = [int(num) for num in input().split()]

dp = [[1]*(m+1) for _ in range(n+1)]

for i in range(1,n+1):
    for j in range(1,m+1):
        dp[i][j] = dp[i-1][j] + dp[i][j-1] - dp[i-1][j-1]
        if s[i-1] == t[j-1]:
            dp[i][j] += dp[i-1][j-1]
        dp[i][j] = dp[i][j] % MOD
        
        
print(dp[n][m])
