local mod = 1000000007
local function badd(x, y)
  return (x + y) % mod
end
local n = io.read("*n")
local t = {}
local colors = {}
local pos = {}
for i = 1, n do
  local c = io.read("*n")
  t[i] = c
  if not colors[c] then colors[c] = {} end
  table.insert(colors[c], i)
  pos[i] = #colors[c]
end
local cnt = {}
for i = 1, n do
  cnt[i] = 1
end
for i = n - 1, 1, -1 do
  local c, p = t[i], pos[i]
  if p < #colors[c] and i + 1 < colors[c][p + 1] then
    cnt[i] = badd(cnt[i + 1], cnt[colors[c][p + 1]])
  else
    cnt[i] = cnt[i + 1]
  end
end
print(cnt[1])
