#include<bits/stdc++.h>
using namespace std;
long long dp[2010][2010];
int s[2010];
int t[2010];
int main()
{
	int n, m;
	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++)
		dp[i][0]=1;
	for (int j=0;j<=m;j++)
		dp[0][j]=1; 
	for (int i=1;i<=n;i++)
		for (int j=1;j<=m;j++){
			dp[i][j]=dp[i][j-1]+dp[i-1][j]-dp[i-1][j-1];
			if (s[i]==t[j]) dp[i][j]+=dp[i-1][j-1];
			dp[i][j]=(dp[i][j]+1000000007)%1000000007;
		}
	cout << dp[n][m];
	return 0;
}