n, m = gets.chomp.split.map(&:to_i)
s = gets.chomp.split.map(&:to_i)
t = gets.chomp.split.map(&:to_i)
a = []
d = 1
a[0] = []
m.times do |j|
  if s[0] == t[j]
    d += 1
  end
  a[0][j] = d
end
1.upto(n-1) do |i|
  a[i] = []
  if s[i] == t[0]
    a[i][0] = a[i-1][0] + 1
  else
    a[i][0] = a[i-1][0]
  end
  1.upto(m-1) do |j|
    if s[i] == t[j]
      a[i][j] = a[i-1][j] + a[i][j-1]
    else
      a[i][j] = a[i-1][j] + a[i][j-1] - a[i-1][j-1]
    end
    a[i][j] %= 1000000007
  end
end
puts a[-1][-1]
