#include<bits/stdc++.h>
#define sc scanf
using namespace std;
const int N=3e5+5;
const int mod=1e9+7;
typedef unsigned long long ull;
typedef long long ll;
template <typename it>int o(it a){cout<<a<<endl;return 0;}
int n,m;
int s[N],t[N];
ll dp[2005][2005]={0};
int 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=1;i<=n;i++)
    for(int j=1;j<=m;j++)
    if(s[i]==t[j])dp[i][j]=(dp[i-1][j]+dp[i][j-1]+1)%mod;
    else dp[i][j]=(dp[i-1][j]+dp[i][j-1]-dp[i-1][j-1]+mod)%mod;
    o((dp[n][m]+1)%mod);
}