#include <bits/stdc++.h>
using namespace std;
#define int long long
int MAX=1000000007;



signed main() {
int n,m;
cin>>n>>m;
int ans[n][m],s[n],t[m];
for(int i=0;i<n;i++)cin>>s[i];
for(int i=0;i<m;i++)cin>>t[i];
for(int i=0;i<n;i++){
    for(int j=0;j<m;j++){
        ans[i][j]=0;
        if(i!=0)ans[i][j]=(ans[i][j]+ans[i-1][j])%MAX;
        if(j!=0)ans[i][j]=(ans[i][j]+ans[i][j-1])%MAX;
        
        if(s[i]==t[j]){
            ans[i][j]++;
        }else{
            if(i!=0&&j!=0)ans[i][j]=(ans[i][j]+MAX-ans[i-1][j-1])%MAX;
        }
    }
}
cout<<(ans[n-1][m-1]+1)%MAX;


 
   

      return 0;

}
