#include <bits/stdc++.h>
#pragma warning(disable : 4996)
long long lasts[2001];
int main(void) {
  int n, m;
  int s[2001], t[2001];
  scanf("%d %d", &n, &m);
  for (int i = 0; i < n; i++) {
    scanf("%d", &s[i]);
  }
  for (int i = 0; i < m; i++) {
    scanf("%d", &t[i]);
  }
  for (int i = 0; i < m; i++) {
    for (int j = n - 1; j >= 0; j--) {
      if (t[i] == s[j]) {
        lasts[j]++;
        for (int k = 0; k <= j - 1; k++) {
          lasts[j] += lasts[k];
        }
      }
    }
  }
  long long ans = 0;
  for (int k = 0; k < n; k++) {
    ans += lasts[k];
    ans %= 1000000007;
  }
  ans++;
  ans %= 1000000007;
  printf("%lld\n", ans);
  return 0;
}
