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();
   int[] a = new int[M+1];
   for(int i=0;i<M;i++) a[i] = sc.nextInt();
   long[] dp = new long[N+1];
   int count =0;
   if(N==1) System.out.println(1);
   else
   {

   dp[1]=1;
   if(a[count]==1)
   {
     dp[1]=0;
     count++;
   }
   dp[2]=1+dp[1];
   if(a[count]==2)
   {
     dp[2]=0;
     count++;
   }
   for(int i=3;i<=N;i++)
   {
     if(a[count]==i) 
     {
       dp[i]=0;
       count++;
     }
     else dp[i]=(dp[i-1]+dp[i-2])%1000000007;
   }
   System.out.println(dp[N]);
   }
 }
} 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();
   int[] a = new int[M+1];
   for(int i=0;i<M;i++) a[i] = sc.nextInt();
   long[] dp = new long[N+1];
   int count =0;
   if(N==1) System.out.println(1);
   else
   {

   dp[1]=1;
   if(a[count]==1)
   {
     dp[1]=0;
     count++;
   }
   dp[2]=1+dp[1];
   if(a[count]==2)
   {
     dp[2]=0;
     count++;
   }
   for(int i=3;i<=N;i++)
   {
     if(a[count]==i) 
     {
       dp[i]=0;
       count++;
     }
     else dp[i]=(dp[i-1]+dp[i-2])%1000000007;
   }
   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();
   int[] a = new int[M+1];
   for(int i=0;i<M;i++) a[i] = sc.nextInt();
   long[] dp = new long[N+1];
   int count =0;
   if(N==1) System.out.println(1);
   else
   {

   dp[1]=1;
   if(a[count]==1)
   {
     dp[1]=0;
     count++;
   }
   dp[2]=1+dp[1];
   if(a[count]==2)
   {
     dp[2]=0;
     count++;
   }
   for(int i=3;i<=N;i++)
   {
     if(a[count]==i) 
     {
       dp[i]=0;
       count++;
     }
     else dp[i]=(dp[i-1]+dp[i-2])%1000000007;
   }
   System.out.println(dp[N]);
   }
 } main {
   Scanner sc = new Scanner(System.in);
 
   int N = sc.nextInt();
   int M = sc.nextInt();
   int[] a = new int[M+1];
   for(int i=0;i<M;i++) a[i] = sc.nextInt();
   long[] dp = new long[N+1];
   int count =0;
   if(N==1) System.out.println(1);
   else
   {

   dp[1]=1;
   if(a[count]==1)
   {
     dp[1]=0;
     count++;
   }
   dp[2]=1+dp[1];
   if(a[count]==2)
   {
     dp[2]=0;
     count++;
   }
   for(int i=3;i<=N;i++)
   {
     if(a[count]==i) 
     {
       dp[i]=0;
       count++;
     }
     else dp[i]=(dp[i-1]+dp[i-2])%1000000007;
   }
   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 int[] a = new int[M+1]; a new int[M+1] M+1 M 1 for(int i=0;i<M;i++) a[i] = sc.nextInt(); int i=0; int i=0; i 0 i<M i M i++ i++ i a[i] = sc.nextInt(); a[i] = sc.nextInt() a[i] a i sc.nextInt() sc.nextInt sc long[] dp = new long[N+1]; dp new long[N+1] N+1 N 1 int count =0; count 0 if(N==1) System.out.println(1);
   else
   {

   dp[1]=1;
   if(a[count]==1)
   {
     dp[1]=0;
     count++;
   }
   dp[2]=1+dp[1];
   if(a[count]==2)
   {
     dp[2]=0;
     count++;
   }
   for(int i=3;i<=N;i++)
   {
     if(a[count]==i) 
     {
       dp[i]=0;
       count++;
     }
     else dp[i]=(dp[i-1]+dp[i-2])%1000000007;
   }
   System.out.println(dp[N]);
   } N==1 N 1 System.out.println(1) System.out.println System.out System System.out 1 {

   dp[1]=1;
   if(a[count]==1)
   {
     dp[1]=0;
     count++;
   }
   dp[2]=1+dp[1];
   if(a[count]==2)
   {
     dp[2]=0;
     count++;
   }
   for(int i=3;i<=N;i++)
   {
     if(a[count]==i) 
     {
       dp[i]=0;
       count++;
     }
     else dp[i]=(dp[i-1]+dp[i-2])%1000000007;
   }
   System.out.println(dp[N]);
   } dp[1]=1 dp[1] dp 1 1 if(a[count]==1)
   {
     dp[1]=0;
     count++;
   } a[count]==1 a[count] a count 1 {
     dp[1]=0;
     count++;
   } dp[1]=0 dp[1] dp 1 0 count++ count dp[2]=1+dp[1] dp[2] dp 2 1+dp[1] 1 dp[1] dp 1 if(a[count]==2)
   {
     dp[2]=0;
     count++;
   } a[count]==2 a[count] a count 2 {
     dp[2]=0;
     count++;
   } dp[2]=0 dp[2] dp 2 0 count++ count for(int i=3;i<=N;i++)
   {
     if(a[count]==i) 
     {
       dp[i]=0;
       count++;
     }
     else dp[i]=(dp[i-1]+dp[i-2])%1000000007;
   } int i=3; int i=3; i 3 i<=N i N i++ i++ i {
     if(a[count]==i) 
     {
       dp[i]=0;
       count++;
     }
     else dp[i]=(dp[i-1]+dp[i-2])%1000000007;
   } {
     if(a[count]==i) 
     {
       dp[i]=0;
       count++;
     }
     else dp[i]=(dp[i-1]+dp[i-2])%1000000007;
   } if(a[count]==i) 
     {
       dp[i]=0;
       count++;
     }
     else dp[i]=(dp[i-1]+dp[i-2])%1000000007; a[count]==i a[count] a count i {
       dp[i]=0;
       count++;
     } dp[i]=0 dp[i] dp i 0 count++ count 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 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();
   int[] a = new int[M+1];
   for(int i=0;i<M;i++) a[i] = sc.nextInt();
   long[] dp = new long[N+1];
   int count =0;
   if(N==1) System.out.println(1);
   else
   {

   dp[1]=1;
   if(a[count]==1)
   {
     dp[1]=0;
     count++;
   }
   dp[2]=1+dp[1];
   if(a[count]==2)
   {
     dp[2]=0;
     count++;
   }
   for(int i=3;i<=N;i++)
   {
     if(a[count]==i) 
     {
       dp[i]=0;
       count++;
     }
     else dp[i]=(dp[i-1]+dp[i-2])%1000000007;
   }
   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();
   int[] a = new int[M+1];
   for(int i=0;i<M;i++) a[i] = sc.nextInt();
   long[] dp = new long[N+1];
   int count =0;
   if(N==1) System.out.println(1);
   else
   {

   dp[1]=1;
   if(a[count]==1)
   {
     dp[1]=0;
     count++;
   }
   dp[2]=1+dp[1];
   if(a[count]==2)
   {
     dp[2]=0;
     count++;
   }
   for(int i=3;i<=N;i++)
   {
     if(a[count]==i) 
     {
       dp[i]=0;
       count++;
     }
     else dp[i]=(dp[i-1]+dp[i-2])%1000000007;
   }
   System.out.println(dp[N]);
   }
 }
} Main
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();
   int[] a = new int[M+1];
   for(int i=0;i<M;i++) a[i] = sc.nextInt();
   long[] dp = new long[N+1];
   int count =0;
   if(N==1) System.out.println(1);
   else
   {

   dp[1]=1;
   if(a[count]==1)
   {
     dp[1]=0;
     count++;
   }
   dp[2]=1+dp[1];
   if(a[count]==2)
   {
     dp[2]=0;
     count++;
   }
   for(int i=3;i<=N;i++)
   {
     if(a[count]==i) 
     {
       dp[i]=0;
       count++;
     }
     else dp[i]=(dp[i-1]+dp[i-2])%1000000007;
   }
   System.out.println(dp[N]);
   }
 }
}