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

#define m 1000000007
int main(){
  
  int n,m,j,i;
  cin>>n>>m;
  vector<long int>s(n),t(m);
  
  for(i=0;i<n;i++) cin>>s[i];
  for(i=0;i<m;i++) cin>>t[i];
  
  vector<vector<long int>>dp(n+1,vector<long int>(m+1,0));
  for(i=1;i<=n;i++){
    for(j=1;j<=m;j++){
      if(s[i-1] == t[j-1])
         dp[i][j] =  (dp[i-1][j] + dp[i][j-1]+1)%m;
      else
        dp[i][j] = (dp[i-1][j] + dp[i][j-1] - dp[i-1][j-1])%m;
    }
  }
  cout<<dp[n][m]%m;
  return 0;
}