#include<bits/stdc++.h>
#define For(a,b,c) for(int a=b;a<=c;++a)
#define Dor(a,b,c) for(int a=b;a>=c;--a)
using namespace std;
const int N=2007,P=1000000007;
int n,m,A[N],B[N],F[N][N];
int main() {
	scanf("%d%d",&n,&m);
	For(i,1,n) scanf("%d",&A[i]);
	For(i,1,m) scanf("%d",&B[i]);
	For(i,1,n) F[i][0]=1;
	For(i,0,m) F[0][i]=1;
	For(i,1,n)
		For(j,1,m) {
			F[i][j]=(F[i-1][j]+F[i][j-1])%P;
			if(A[i]!=B[j]) F[i][j]=(F[i][j]-F[i-1][j-1]+P)%P;
		}
	printf("%d",F[n][m]);
	return 0;
}