#include <bits/stdc++.h>

using namespace std;

#define int long long

const int N = 2e3 + 100, MOD = 1e9 + 7;

int dp[N][N], a[N], b[N];
int n, m;

int32_t main() {
    ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0);
    cin >> n >> m;
    for (int i = 1; i <= n; i++)
	cin >> a[i];
    for (int i = 1; i <= m; i++)
	cin >> b[i];
    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] + (a[i] == b[j]) * (dp[i - 1][j - 1] + 1)) % MOD;
    return cout << (dp[n][m] + 1 + 23 * MOD) % MOD, 0;
}