import java.util.Scanner;


	public class Main {
		
		public static void main(String[] args) {

			Scanner sc = new Scanner(System.in);
			
			int n = sc.nextInt();
			int m = sc.nextInt();
			boolean[] a = new boolean[n+1];
			long[] dp = new long[n+1];
			
			for(int i=0;i<m;i++) {
				a[sc.nextInt()] = true;
			}
			
			dp[0] = 1;
			
			for(int i=1;i<=n;i++) {
				if(a[i]) {
					continue;
				}else {
					dp[i]+=dp[i-1]%1000000007L;
					dp[i]%=1000000007L;
					
					if(i>=2) {
						dp[i]+=dp[i-2]%1000000007L;
						dp[i]%=1000000007L;
					}
				}
			}
			
			System.out.println(dp[n]);
	    }
		
	}
	 import java.util.Scanner; Scanner 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[] a = new boolean[n+1];
			long[] dp = new long[n+1];
			
			for(int i=0;i<m;i++) {
				a[sc.nextInt()] = true;
			}
			
			dp[0] = 1;
			
			for(int i=1;i<=n;i++) {
				if(a[i]) {
					continue;
				}else {
					dp[i]+=dp[i-1]%1000000007L;
					dp[i]%=1000000007L;
					
					if(i>=2) {
						dp[i]+=dp[i-2]%1000000007L;
						dp[i]%=1000000007L;
					}
				}
			}
			
			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[] a = new boolean[n+1];
			long[] dp = new long[n+1];
			
			for(int i=0;i<m;i++) {
				a[sc.nextInt()] = true;
			}
			
			dp[0] = 1;
			
			for(int i=1;i<=n;i++) {
				if(a[i]) {
					continue;
				}else {
					dp[i]+=dp[i-1]%1000000007L;
					dp[i]%=1000000007L;
					
					if(i>=2) {
						dp[i]+=dp[i-2]%1000000007L;
						dp[i]%=1000000007L;
					}
				}
			}
			
			System.out.println(dp[n]);
	    } main {

			Scanner sc = new Scanner(System.in);
			
			int n = sc.nextInt();
			int m = sc.nextInt();
			boolean[] a = new boolean[n+1];
			long[] dp = new long[n+1];
			
			for(int i=0;i<m;i++) {
				a[sc.nextInt()] = true;
			}
			
			dp[0] = 1;
			
			for(int i=1;i<=n;i++) {
				if(a[i]) {
					continue;
				}else {
					dp[i]+=dp[i-1]%1000000007L;
					dp[i]%=1000000007L;
					
					if(i>=2) {
						dp[i]+=dp[i-2]%1000000007L;
						dp[i]%=1000000007L;
					}
				}
			}
			
			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[] a = new boolean[n+1]; a new boolean[n+1] n+1 n 1 long[] dp = new long[n+1]; dp new long[n+1] n+1 n 1 for(int i=0;i<m;i++) {
				a[sc.nextInt()] = true;
			} int i=0; int i=0; i 0 i<m i m i++ i++ i {
				a[sc.nextInt()] = true;
			} {
				a[sc.nextInt()] = true;
			} a[sc.nextInt()] = true a[sc.nextInt()] a sc.nextInt() sc.nextInt sc true dp[0] = 1 dp[0] dp 0 1 for(int i=1;i<=n;i++) {
				if(a[i]) {
					continue;
				}else {
					dp[i]+=dp[i-1]%1000000007L;
					dp[i]%=1000000007L;
					
					if(i>=2) {
						dp[i]+=dp[i-2]%1000000007L;
						dp[i]%=1000000007L;
					}
				}
			} int i=1; int i=1; i 1 i<=n i n i++ i++ i {
				if(a[i]) {
					continue;
				}else {
					dp[i]+=dp[i-1]%1000000007L;
					dp[i]%=1000000007L;
					
					if(i>=2) {
						dp[i]+=dp[i-2]%1000000007L;
						dp[i]%=1000000007L;
					}
				}
			} {
				if(a[i]) {
					continue;
				}else {
					dp[i]+=dp[i-1]%1000000007L;
					dp[i]%=1000000007L;
					
					if(i>=2) {
						dp[i]+=dp[i-2]%1000000007L;
						dp[i]%=1000000007L;
					}
				}
			} if(a[i]) {
					continue;
				}else {
					dp[i]+=dp[i-1]%1000000007L;
					dp[i]%=1000000007L;
					
					if(i>=2) {
						dp[i]+=dp[i-2]%1000000007L;
						dp[i]%=1000000007L;
					}
				} a[i] a i {
					continue;
				} continue; {
					dp[i]+=dp[i-1]%1000000007L;
					dp[i]%=1000000007L;
					
					if(i>=2) {
						dp[i]+=dp[i-2]%1000000007L;
						dp[i]%=1000000007L;
					}
				} dp[i]+=dp[i-1]%1000000007L dp[i] dp i dp[i-1]%1000000007L dp[i-1] dp i-1 i 1 1000000007L dp[i]%=1000000007L dp[i] dp i 1000000007L if(i>=2) {
						dp[i]+=dp[i-2]%1000000007L;
						dp[i]%=1000000007L;
					} i>=2 i 2 {
						dp[i]+=dp[i-2]%1000000007L;
						dp[i]%=1000000007L;
					} dp[i]+=dp[i-2]%1000000007L dp[i] dp i dp[i-2]%1000000007L dp[i-2] dp i-2 i 2 1000000007L dp[i]%=1000000007L dp[i] dp i 1000000007L 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[] a = new boolean[n+1];
			long[] dp = new long[n+1];
			
			for(int i=0;i<m;i++) {
				a[sc.nextInt()] = true;
			}
			
			dp[0] = 1;
			
			for(int i=1;i<=n;i++) {
				if(a[i]) {
					continue;
				}else {
					dp[i]+=dp[i-1]%1000000007L;
					dp[i]%=1000000007L;
					
					if(i>=2) {
						dp[i]+=dp[i-2]%1000000007L;
						dp[i]%=1000000007L;
					}
				}
			}
			
			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[] a = new boolean[n+1];
			long[] dp = new long[n+1];
			
			for(int i=0;i<m;i++) {
				a[sc.nextInt()] = true;
			}
			
			dp[0] = 1;
			
			for(int i=1;i<=n;i++) {
				if(a[i]) {
					continue;
				}else {
					dp[i]+=dp[i-1]%1000000007L;
					dp[i]%=1000000007L;
					
					if(i>=2) {
						dp[i]+=dp[i-2]%1000000007L;
						dp[i]%=1000000007L;
					}
				}
			}
			
			System.out.println(dp[n]);
	    }
		
	} Main
import java.util.Scanner;


	public class Main {
		
		public static void main(String[] args) {

			Scanner sc = new Scanner(System.in);
			
			int n = sc.nextInt();
			int m = sc.nextInt();
			boolean[] a = new boolean[n+1];
			long[] dp = new long[n+1];
			
			for(int i=0;i<m;i++) {
				a[sc.nextInt()] = true;
			}
			
			dp[0] = 1;
			
			for(int i=1;i<=n;i++) {
				if(a[i]) {
					continue;
				}else {
					dp[i]+=dp[i-1]%1000000007L;
					dp[i]%=1000000007L;
					
					if(i>=2) {
						dp[i]+=dp[i-2]%1000000007L;
						dp[i]%=1000000007L;
					}
				}
			}
			
			System.out.println(dp[n]);
	    }
		
	}
	
