

function Main(input) {
  input = input.split("\n");
  var N = parseInt(input[0]);
  var C = new Array(N);
  var mod = Math.pow(10,9)+7;
  var map=new Array(2*Math.pow(10,5)).fill(-1);
  var l =new Array(1).fill(1);
  var prev =-1;
  for(var i=0;i<N;i++){
    C[i]=parseInt(input[i+1]);
    if(C[i]!=prev){
      if(i!=0){
        if(map[C[i]]!=-1){
          l.push((l[map[C[i]]]+l[l.length-1])%mod);
        }else{
          l.push(l[l.length-1]);
        }
      }
        map[C[i]]=i;
    }
    prev=C[i];
  }
  var ans=l[l.length-1];

  console.log('%s', ans);
  return ans;
}
// "実行する"ボタンを押した時に実行される関数 (デバッグ用)
function debug(n){
  var input = document.getElementById("input"+n).value;
  var ans=Main(input);
  var result="WA";
  if(ans==document.getElementById("output"+n).value.split("\n")[0]){
    result="AC";
  }
  document.getElementById("result"+n).innerHTML=result;
}
Main(require("fs").readFileSync("/dev/stdin", "utf8"));