#include <bits/stdc++.h>
using namespace std;
#define int long long
#define mod 1000000007
int n,m,s[2003],t[2003],d[2003][2003];
bool db = 0;
int a(int u,int v){
	int res = (u + v)%mod;
	if(res < 0) res += mod;
	return res;
}
int dp(int u,int v){
	int &ans = d[u][v];
	if(ans != LONG_MIN) {
		return ans;
	}
	if(u == 0 || v == 0) return ans = 1;
	return ans = a(a(dp(u,v-1),dp(u-1,v)),-(s[u]!=t[v])*dp(u-1,v-1));
}
signed main(){
	cin >> n >> m;
	for(int i = 1 ; i <= n ; i ++) cin >> s[i];
	for(int i = 1 ; i <= m ; i ++) cin >> t[i];
	for(int i = 0 ; i <= n ; i ++)
		for(int j = 0 ; j <= m ; j ++)
			d[i][j] = LONG_MIN;
	cout << dp(n,m);
	
}
