#include <bits/stdc++.h>
using namespace std;
const int64_t MOD = 1000000007;
const int MAX_N = 2010;
int ns, nt;
int s[MAX_N], t[MAX_N];
int64_t cum[MAX_N][MAX_N];
int main() {
  cin >> ns >> nt;
  for (int i{0}; i < (int)(ns); i++) scanf("%d", s[i]);
  for (int j{0}; j < (int)(nt); j++) scanf("%d", t[j]);
  for (int i{0}; i < (int)(MAX_N); i++) cum[1][i] = cum[i][1] = 1;
  for (int i{0}; i < (int)(ns); i++)
    for (int j{0}; j < (int)(nt); j++) {
      int64_t dp = 0;
      if (s[i] == t[j]) dp = cum[i + 1][j + 1];
      cum[i + 2][j + 2] =
          dp + cum[i + 1][j + 2] + cum[i + 2][j + 1] - cum[i + 1][j + 1];
      cum[i + 2][j + 2] = (cum[i + 2][j + 2] + MOD) % MOD;
    }
  cout << cum[ns + 1][nt + 1] << endl;
}
