
#50 ABC130E
n,m=map(int,input().split())
s=list(map(int,input().split()))
t=list(map(int,input().split()))
mod=10**9+7

import numpy as np
t=np.array(t,dtype=np.int64)
dp=np.ones(m+1,dtype=np.int64)

for a in s:
	dp[1:]=((dp[:-1]*(t==a)).cumsum()+dp[1:])%mod
print(dp[-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=10**9+7 mod 10**9+7 10**9 10 9 7 import numpy as np numpy t=np.array(t,dtype=np.int64) t np.array(t,dtype=np.int64) np.array np array t dtype=np.int64 dtype np.int64 np int64 dp=np.ones(m+1,dtype=np.int64) dp np.ones(m+1,dtype=np.int64) np.ones np ones m+1 m 1 dtype=np.int64 dtype np.int64 np int64 for a in s:
	dp[1:]=((dp[:-1]*(t==a)).cumsum()+dp[1:])%mod a s dp[1:]=((dp[:-1]*(t==a)).cumsum()+dp[1:])%mod dp[1:] dp 1: 1 ((dp[:-1]*(t==a)).cumsum()+dp[1:])%mod (dp[:-1]*(t==a)).cumsum()+dp[1:] (dp[:-1]*(t==a)).cumsum() dp[:-1]*(t==a)).cumsum dp[:-1]*(t==a) dp[:-1] dp :-1 -1 t==a t a cumsum dp[1:] dp 1: 1 mod print(dp[-1]) print dp[-1] dp -1 n,m=map(int,input().split()) map(int,input().split()) n t=list(map(int,input().split())) list(map(int,input().split())) t mod=10**9+7 10**9+7 mod m=map(int,input().split()) map(int,input().split()) m dp=np.ones(m+1,dtype=np.int64) np.ones(m+1,dtype=np.int64) dp s=list(map(int,input().split())) list(map(int,input().split())) s t=np.array(t,dtype=np.int64) np.array(t,dtype=np.int64) t

#50 ABC130E
n,m=map(int,input().split())
s=list(map(int,input().split()))
t=list(map(int,input().split()))
mod=10**9+7

import numpy as np
t=np.array(t,dtype=np.int64)
dp=np.ones(m+1,dtype=np.int64)

for a in s:
	dp[1:]=((dp[:-1]*(t==a)).cumsum()+dp[1:])%mod
print(dp[-1])