#include<bits/stdc++.h>
#define LL long long
#define P 1000000007
#define M 2005
using namespace std;
int A[M],B[M],sum[M][M];
void Add(int &x,int y){
	y%=P;
	x+=y;
	x%=P;
	if(x<0)x+=P;
}
int main() { 
	int n,m,h,x,y; 
	scanf("%d %d",&n,&m);
	for(int i=1;i<=n;i++)
		scanf("%d",&A[i]);
	for(int i=1;i<=m;i++)scanf("%d",&B[i]);
	int ans=1; 
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++){
			if(A[i]==B[j]){
				sum[i][j]=sum[i-1][j-1]+1;
				Add(ans,sum[i][j]);
			}
			Add(sum[i][j],sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1]);
		}
	cout<<ans<<endl;
	return 0;
}