#include<bits/stdc++.h>

using namespace std;
typedef long long ll;
const ll mod = 1e9+7;
const int N = 3000;
ll a[N],b[N];
ll dp[N][N];
int main(){
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=n;i++) cin>>a[i];
	for(int i=1;i<=m;i++) cin>>b[i];
	for(int i=0;i<=n;i++) dp[i][0]=1;
	for(int i=0;i<=m;i++) dp[0][i]=1;
	long long ans=0;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			if(a[i]==b[j]){
				dp[i][j]=(dp[i][j]%mod+dp[i-1][j]%mod+dp[i][j-1]%mod)%mod;
				//cout<<i<<' '<<j<<' '<<dp[i][j]<<endl;
			}
			else{
				dp[i][j]=(dp[i-1][j]%mod+dp[i][j-1]%mod-dp[i-1][j-1]+mod)%mod;
				//cout<<i<<' '<<j<<' '<<dp[i][j]<<endl;
			}
		}
	}
	cout<<dp[n][m]<<endl;
	return 0;
}