#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9 + 7;
int dp[1005][1005];
inline void add(int &x, int y) {
  if (y >= mod) y -= mod;
  x += y;
  if (x >= mod) x -= mod;
}
int main() {
  ios_base::sync_with_stdio(0), cin.tie(0);
  int n, m;
  cin >> n >> m;
  vector<int> a(n), b(m);
  for (auto &i : a) cin >> i;
  for (auto &i : b) cin >> i;
  a.insert(a.begin(), 0);
  b.insert(b.begin(), 0);
  for (int i = 1003; i >= 0; --i) dp[0][i] = dp[i][0] = 1;
  for (int i = 1; i <= n; ++i)
    for (int j = 1; j <= m; ++j) {
      add(dp[i][j], dp[i - 1][j]);
      add(dp[i][j], dp[i][j - 1]);
      add(dp[i][j], mod - dp[i - 1][j - 1]);
      if (a[i] == b[j]) add(dp[i][j], dp[i - 1][j - 1]);
    }
  cout << dp[n][m] << "\n";
  return 0;
}
