

function Main(input) {
  input = input.split("\n");
  var N = parseInt(input[0].split(" ")[0]);
  var M = parseInt(input[0].split(" ")[1]);
  input.shift();
  var a = input.map(i => parseInt(i));
  var dp = new Array(N+1);
  var mod = Math.pow(10,9)+7;
  for(var i=0;i<N+1;i++){
    var tmp=new Array(N+1).fill(0);
    dp[i]=tmp;
  }
  for(var i=0;i<M;i++){
    var tmp=new Array(N+1).fill(-1);
    dp[a[i]]=tmp;
  }
  dp[0][0]=1;
  for(var i=1;i<N+1;i++){
    for(var j=Math.min(i*2,N);j>=i;j--){
      if(j==N){
        dp[j][i]+=dp[j][i-1];
      }
      if(j>=2){
      if(dp[j-2][i-1]!=-1){
        if(dp[j][i]!=-1){
          dp[j][i]=(dp[j][i]+dp[j-2][i-1])%mod;
        }
      }
    }
      if(dp[j-1][i-1]!=-1){
        if(dp[j][i]!=-1){
          dp[j][i]=(dp[j][i]+dp[j-1][i-1])%mod;
        }
      }
    }
  }
  var ans=dp[N][N];
  
  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"));