#include <bits/stdc++.h>
#include <iostream>
#include <vector>
using namespace std;

int func(int i,int j){
  vector<int> dp(j-i+1);
  dp[0] = 0;
  dp[1] = 1;
  for(int k=1;k<j-i+1;k++){
    dp[i] = dp[i-1]+dp[i-2];
  }
  return dp[j-i];
}

int main() {
  int n,m;
  cin >> n >> m;
  vector<int> h(m);
  for(int i=0;i<m;i++){
    cin >> h.at(i);
  }
  int stop = 0;
  for(int i=0;i<m-1;i++){
    if(h.at(i+1)-h.at(i) == 1){
      stop = -1;
      break;
    }
  }
  
  if(stop == -1){
    cout << 0 << endl;
  }
  else {
    long long ans=0; 
    for(int k=0;k<m-1;k++){
      ans += func(h.at(k)+1,h.at(k+1)-1);
    }
    ans += func(0,h.at(0)-1);
    ans += fun(h.at(m-1)+1,n);
    ans %= 1000000007;
    
    cout <<  << endl;
  }
  return 0;
}

  
