import java.lang.reflect.Array;
import java.util.*;
public class Main{
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt(); 
    int M = sc.nextInt(); 
    boolean b[] = new boolean[N+1]; 
    long dp[] = new long[N+1];

    Arrays.fill(b,true);
    for(int i = 0; i < M; i++){
      int tmp = sc.nextInt();  
      b[tmp]= false; 
    }
    dp[0] = 1;
    if(b[1]==true){
      dp[1] = 1;
    }else{
      dp[1] = 0;
    }
    for(int i = 2; i < N+1; i++){
      if(b[i]==true){
        dp[i] = (dp[i-1] + dp[i-2])%1000000007; 
      }else{
        dp[i] = 0; 
      }
    }  
    System.out.println(dp[N]);      
  }
}

 import java.lang.reflect.Array; Array java.lang.reflect import java.util.*; util.* java public class Main{
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt(); 
    int M = sc.nextInt(); 
    boolean b[] = new boolean[N+1]; 
    long dp[] = new long[N+1];

    Arrays.fill(b,true);
    for(int i = 0; i < M; i++){
      int tmp = sc.nextInt();  
      b[tmp]= false; 
    }
    dp[0] = 1;
    if(b[1]==true){
      dp[1] = 1;
    }else{
      dp[1] = 0;
    }
    for(int i = 2; i < N+1; i++){
      if(b[i]==true){
        dp[i] = (dp[i-1] + dp[i-2])%1000000007; 
      }else{
        dp[i] = 0; 
      }
    }  
    System.out.println(dp[N]);      
  }
} Main public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt(); 
    int M = sc.nextInt(); 
    boolean b[] = new boolean[N+1]; 
    long dp[] = new long[N+1];

    Arrays.fill(b,true);
    for(int i = 0; i < M; i++){
      int tmp = sc.nextInt();  
      b[tmp]= false; 
    }
    dp[0] = 1;
    if(b[1]==true){
      dp[1] = 1;
    }else{
      dp[1] = 0;
    }
    for(int i = 2; i < N+1; i++){
      if(b[i]==true){
        dp[i] = (dp[i-1] + dp[i-2])%1000000007; 
      }else{
        dp[i] = 0; 
      }
    }  
    System.out.println(dp[N]);      
  } main {
    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt(); 
    int M = sc.nextInt(); 
    boolean b[] = new boolean[N+1]; 
    long dp[] = new long[N+1];

    Arrays.fill(b,true);
    for(int i = 0; i < M; i++){
      int tmp = sc.nextInt();  
      b[tmp]= false; 
    }
    dp[0] = 1;
    if(b[1]==true){
      dp[1] = 1;
    }else{
      dp[1] = 0;
    }
    for(int i = 2; i < N+1; i++){
      if(b[i]==true){
        dp[i] = (dp[i-1] + dp[i-2])%1000000007; 
      }else{
        dp[i] = 0; 
      }
    }  
    System.out.println(dp[N]);      
  } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int N = sc.nextInt(); N sc.nextInt() sc.nextInt sc int M = sc.nextInt(); M sc.nextInt() sc.nextInt sc boolean b[] = new boolean[N+1]; b new boolean[N+1] N+1 N 1 long dp[] = new long[N+1]; dp new long[N+1] N+1 N 1 Arrays.fill(b,true) Arrays.fill Arrays b true for(int i = 0; i < M; i++){
      int tmp = sc.nextInt();  
      b[tmp]= false; 
    } int i = 0; int i = 0; i 0 i < M i M i++ i++ i {
      int tmp = sc.nextInt();  
      b[tmp]= false; 
    } {
      int tmp = sc.nextInt();  
      b[tmp]= false; 
    } int tmp = sc.nextInt(); tmp sc.nextInt() sc.nextInt sc b[tmp]= false b[tmp] b tmp false dp[0] = 1 dp[0] dp 0 1 if(b[1]==true){
      dp[1] = 1;
    }else{
      dp[1] = 0;
    } b[1]==true b[1] b 1 true {
      dp[1] = 1;
    } dp[1] = 1 dp[1] dp 1 1 {
      dp[1] = 0;
    } dp[1] = 0 dp[1] dp 1 0 for(int i = 2; i < N+1; i++){
      if(b[i]==true){
        dp[i] = (dp[i-1] + dp[i-2])%1000000007; 
      }else{
        dp[i] = 0; 
      }
    } int i = 2; int i = 2; i 2 i < N+1 i N+1 N 1 i++ i++ i {
      if(b[i]==true){
        dp[i] = (dp[i-1] + dp[i-2])%1000000007; 
      }else{
        dp[i] = 0; 
      }
    } {
      if(b[i]==true){
        dp[i] = (dp[i-1] + dp[i-2])%1000000007; 
      }else{
        dp[i] = 0; 
      }
    } if(b[i]==true){
        dp[i] = (dp[i-1] + dp[i-2])%1000000007; 
      }else{
        dp[i] = 0; 
      } b[i]==true b[i] b i true {
        dp[i] = (dp[i-1] + dp[i-2])%1000000007; 
      } dp[i] = (dp[i-1] + dp[i-2])%1000000007 dp[i] dp i (dp[i-1] + dp[i-2])%1000000007 (dp[i-1] + dp[i-2]) dp[i-1] dp i-1 i 1 dp[i-2] dp i-2 i 2 1000000007 {
        dp[i] = 0; 
      } dp[i] = 0 dp[i] dp i 0 System.out.println(dp[N]) System.out.println System.out System System.out dp[N] dp N String[] args args public class Main{
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt(); 
    int M = sc.nextInt(); 
    boolean b[] = new boolean[N+1]; 
    long dp[] = new long[N+1];

    Arrays.fill(b,true);
    for(int i = 0; i < M; i++){
      int tmp = sc.nextInt();  
      b[tmp]= false; 
    }
    dp[0] = 1;
    if(b[1]==true){
      dp[1] = 1;
    }else{
      dp[1] = 0;
    }
    for(int i = 2; i < N+1; i++){
      if(b[i]==true){
        dp[i] = (dp[i-1] + dp[i-2])%1000000007; 
      }else{
        dp[i] = 0; 
      }
    }  
    System.out.println(dp[N]);      
  }
} public class Main{
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt(); 
    int M = sc.nextInt(); 
    boolean b[] = new boolean[N+1]; 
    long dp[] = new long[N+1];

    Arrays.fill(b,true);
    for(int i = 0; i < M; i++){
      int tmp = sc.nextInt();  
      b[tmp]= false; 
    }
    dp[0] = 1;
    if(b[1]==true){
      dp[1] = 1;
    }else{
      dp[1] = 0;
    }
    for(int i = 2; i < N+1; i++){
      if(b[i]==true){
        dp[i] = (dp[i-1] + dp[i-2])%1000000007; 
      }else{
        dp[i] = 0; 
      }
    }  
    System.out.println(dp[N]);      
  }
} Main
import java.lang.reflect.Array;
import java.util.*;
public class Main{
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    int N = sc.nextInt(); 
    int M = sc.nextInt(); 
    boolean b[] = new boolean[N+1]; 
    long dp[] = new long[N+1];

    Arrays.fill(b,true);
    for(int i = 0; i < M; i++){
      int tmp = sc.nextInt();  
      b[tmp]= false; 
    }
    dp[0] = 1;
    if(b[1]==true){
      dp[1] = 1;
    }else{
      dp[1] = 0;
    }
    for(int i = 2; i < N+1; i++){
      if(b[i]==true){
        dp[i] = (dp[i-1] + dp[i-2])%1000000007; 
      }else{
        dp[i] = 0; 
      }
    }  
    System.out.println(dp[N]);      
  }
}


