#include<bits/stdc++.h>
#define mo 1000000007
using namespace std;
long long n,m,i,j,a[3005],b[3005],k,f[2005][2005],sum[2005][2005];
long long ksm(long long u,long long v){
	long long o=1;
	while(v){
		if(v&1)
			o=o*u%mo;
		u=u*u%mo;
		v>>=1;
	}
	return o;
}
int main(){
	cin>>n>>m;
	for(i=1;i<=n;i++)
		cin>>a[i];
	for(i=1;i<=m;i++)
		cin>>b[i];
	f[0][0]=1;
	sum[0][0]=1;
	for(i=1;i<=n;i++)
		sum[i][0]=sum[i-1][0];
	for(i=1;i<=m;i++)
		sum[0][i]=sum[0][i-1];
	for(i=1;i<=n;i++)
		for(j=1;j<=m;j++){
			if(a[i]==b[j])
		    	f[i][j]=sum[i-1][j-1]%mo;
			sum[i][j]=(sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1]+f[i][j]+mo)%mo; 
		}
	cout<<sum[n][m]<<endl;
    return 0;
}