using System;
class c
{
    static void Main()
    {
        var inp = Array.ConvertAll(Console.ReadLine().Split(), long.Parse);
        long n = inp[0];
        long m = inp[1];

        var line1 = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);
        var line2 = Array.ConvertAll(Console.ReadLine().Split(), int.Parse);
        var ans = new long[n][];

        for (int i = 0; i < n; i++)
        {
            ans[i] = new long[m];
        }

        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < m; j++)
            {
                if (line1[i] == line2[j])
                {
                    if (i > 0) ans[i][j] += ans[i - 1][j];
                    if (j > 0) ans[i][j] += ans[i][j - 1];
                    ans[i][j]++;
                }
                else
                {
                    long temp1 = 1;
                    long temp2 = 1;
                    if (i > 0) temp1 = ans[i - 1][j];
                    if (j > 0) temp2 = ans[i][j - 1];
                    ans[i][j] = Math.Max(temp1, temp2);
                }
                ans[i][j] %= 1000000007;
            }
        }
        Console.WriteLine(ans[n - 1][m - 1] + 1);
    }
}