#include <bits/stdc++.h>
using namespace std;
typedef long long lint;

const lint MOD = (lint)1e9 + 7;
lint dp[2005][2005], S[2005], T[2005];

int main(){
    ios::sync_with_stdio(false), cin.tie(nullptr);
    int N, M;
    cin>>N>>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++)dp[i][0] = 1;
    for(int i=0;i<=M;i++)dp[0][i] = 1;
    for(int i=1;i<=N;i++){
        for(int j=1;j<=M;j++){
            dp[i][j] = dp[i-1][j] + dp[i][j-1] - dp[i-1][j-1];
            if(S[i-1]==T[j-1]) dp[i][j] += dp[i-1][j-1];
            dp[i][j] = (dp[i][j]%MOD+MOD) % MOD;
        }
    }

    cout<<dp[N][M]<<endl;
    return 0;
}