import java.util.Scanner;

class Main{
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int n = Integer.parseInt(sc.next());
    int m = Integer.parseInt(sc.next());
    int[] stair = new int[n+1];
    int mod = 1_000_000_007;
    for(int i=0;i<m;i++){
      stair[Integer.parseInt(sc.next())] = -1;
    }
    stair[0] = 1;
    for(int i=1;i<=n;i++){
      if(stair[i]==-1)continue;
      if(i>1){
        if(stair[i-2]!=-1)stair[i]+=stair[i-2];
        if(stair[i-1]!=-1)stair[i]+=stair[i-1];
        stair[i] = stair[i]%mod;
      }else{
        stair[i]+=1;
      }
    }
    System.out.print(stair[n]);
    System.out.flush();
  }
} import java.util.Scanner; Scanner java.util class Main{
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int n = Integer.parseInt(sc.next());
    int m = Integer.parseInt(sc.next());
    int[] stair = new int[n+1];
    int mod = 1_000_000_007;
    for(int i=0;i<m;i++){
      stair[Integer.parseInt(sc.next())] = -1;
    }
    stair[0] = 1;
    for(int i=1;i<=n;i++){
      if(stair[i]==-1)continue;
      if(i>1){
        if(stair[i-2]!=-1)stair[i]+=stair[i-2];
        if(stair[i-1]!=-1)stair[i]+=stair[i-1];
        stair[i] = stair[i]%mod;
      }else{
        stair[i]+=1;
      }
    }
    System.out.print(stair[n]);
    System.out.flush();
  }
} Main public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int n = Integer.parseInt(sc.next());
    int m = Integer.parseInt(sc.next());
    int[] stair = new int[n+1];
    int mod = 1_000_000_007;
    for(int i=0;i<m;i++){
      stair[Integer.parseInt(sc.next())] = -1;
    }
    stair[0] = 1;
    for(int i=1;i<=n;i++){
      if(stair[i]==-1)continue;
      if(i>1){
        if(stair[i-2]!=-1)stair[i]+=stair[i-2];
        if(stair[i-1]!=-1)stair[i]+=stair[i-1];
        stair[i] = stair[i]%mod;
      }else{
        stair[i]+=1;
      }
    }
    System.out.print(stair[n]);
    System.out.flush();
  } main {
    Scanner sc = new Scanner(System.in);
    int n = Integer.parseInt(sc.next());
    int m = Integer.parseInt(sc.next());
    int[] stair = new int[n+1];
    int mod = 1_000_000_007;
    for(int i=0;i<m;i++){
      stair[Integer.parseInt(sc.next())] = -1;
    }
    stair[0] = 1;
    for(int i=1;i<=n;i++){
      if(stair[i]==-1)continue;
      if(i>1){
        if(stair[i-2]!=-1)stair[i]+=stair[i-2];
        if(stair[i-1]!=-1)stair[i]+=stair[i-1];
        stair[i] = stair[i]%mod;
      }else{
        stair[i]+=1;
      }
    }
    System.out.print(stair[n]);
    System.out.flush();
  } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int n = Integer.parseInt(sc.next()); n Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc int m = Integer.parseInt(sc.next()); m Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc int[] stair = new int[n+1]; stair new int[n+1] n+1 n 1 int mod = 1_000_000_007; mod 1_000_000_007 for(int i=0;i<m;i++){
      stair[Integer.parseInt(sc.next())] = -1;
    } int i=0; int i=0; i 0 i<m i m i++ i++ i {
      stair[Integer.parseInt(sc.next())] = -1;
    } {
      stair[Integer.parseInt(sc.next())] = -1;
    } stair[Integer.parseInt(sc.next())] = -1 stair[Integer.parseInt(sc.next())] stair Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc -1 1 stair[0] = 1 stair[0] stair 0 1 for(int i=1;i<=n;i++){
      if(stair[i]==-1)continue;
      if(i>1){
        if(stair[i-2]!=-1)stair[i]+=stair[i-2];
        if(stair[i-1]!=-1)stair[i]+=stair[i-1];
        stair[i] = stair[i]%mod;
      }else{
        stair[i]+=1;
      }
    } int i=1; int i=1; i 1 i<=n i n i++ i++ i {
      if(stair[i]==-1)continue;
      if(i>1){
        if(stair[i-2]!=-1)stair[i]+=stair[i-2];
        if(stair[i-1]!=-1)stair[i]+=stair[i-1];
        stair[i] = stair[i]%mod;
      }else{
        stair[i]+=1;
      }
    } {
      if(stair[i]==-1)continue;
      if(i>1){
        if(stair[i-2]!=-1)stair[i]+=stair[i-2];
        if(stair[i-1]!=-1)stair[i]+=stair[i-1];
        stair[i] = stair[i]%mod;
      }else{
        stair[i]+=1;
      }
    } if(stair[i]==-1)continue; stair[i]==-1 stair[i] stair i -1 1 continue; if(i>1){
        if(stair[i-2]!=-1)stair[i]+=stair[i-2];
        if(stair[i-1]!=-1)stair[i]+=stair[i-1];
        stair[i] = stair[i]%mod;
      }else{
        stair[i]+=1;
      } i>1 i 1 {
        if(stair[i-2]!=-1)stair[i]+=stair[i-2];
        if(stair[i-1]!=-1)stair[i]+=stair[i-1];
        stair[i] = stair[i]%mod;
      } if(stair[i-2]!=-1)stair[i]+=stair[i-2]; stair[i-2]!=-1 stair[i-2] stair i-2 i 2 -1 1 stair[i]+=stair[i-2] stair[i] stair i stair[i-2] stair i-2 i 2 if(stair[i-1]!=-1)stair[i]+=stair[i-1]; stair[i-1]!=-1 stair[i-1] stair i-1 i 1 -1 1 stair[i]+=stair[i-1] stair[i] stair i stair[i-1] stair i-1 i 1 stair[i] = stair[i]%mod stair[i] stair i stair[i]%mod stair[i] stair i mod {
        stair[i]+=1;
      } stair[i]+=1 stair[i] stair i 1 System.out.print(stair[n]) System.out.print System.out System System.out stair[n] stair n System.out.flush() System.out.flush System.out System System.out String[] args args
import java.util.Scanner;

class Main{
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int n = Integer.parseInt(sc.next());
    int m = Integer.parseInt(sc.next());
    int[] stair = new int[n+1];
    int mod = 1_000_000_007;
    for(int i=0;i<m;i++){
      stair[Integer.parseInt(sc.next())] = -1;
    }
    stair[0] = 1;
    for(int i=1;i<=n;i++){
      if(stair[i]==-1)continue;
      if(i>1){
        if(stair[i-2]!=-1)stair[i]+=stair[i-2];
        if(stair[i-1]!=-1)stair[i]+=stair[i-1];
        stair[i] = stair[i]%mod;
      }else{
        stair[i]+=1;
      }
    }
    System.out.print(stair[n]);
    System.out.flush();
  }
}