#include <iostream>
using namespace std;

int func(int x){
  if(!x){
    return x;
  }
  else{
    int s = 0;
    s += x;
    return x;
  }
}

int main(){
  int N, M;
  int a[10000]
  cin << N << M;
  for(int i = 0; i < M; i++){
    cin >> a[i];
  }
  bool x = 1;
  for(int i = 0; i < M - 1; i++){
    if(a[i + 1] == a[i] + 1){
      x = 0;
      break;
    }
  }
  if(x){
    if(M == 0){
      cout << func(N) << endl;
    }
    else{
      
      int s = 0;
      s += func(a[0] - 1);
      for(int i = 0; i M - 1; i++){
        s *= func(a[i] - a[i - 1] -2)
      }
      s *= func(N - a[M - 1]);
      cout << s << endl;
      
    }
  }
  else{
    cout << 0 << endl;
  }
  return 0;
}