import java.util.Arrays;
import java.util.Scanner;

class Main{
	static int mod = 1000000007;
	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];
		for(int i = 0; i < M; i++) a[i] = sc.nextInt();
		int[] dp = new int[N + 3];
		Arrays.fill(dp, 0);
		dp[0] = 1;
		for(int i = 0; i < M; i++) dp[a[i]] = -1;
		for(int i = 0; i < N; i++) {
			if(dp[i] == -1) continue;
			if(dp[i + 1] != -1) {
				dp[i + 1] += dp[i];
				dp[i + 1] %= mod;
			}
			if(dp[i + 2] != -1) {
				dp[i + 2] += dp[i];
				dp[i + 2] %= mod;
			}
		}
		System.out.println(dp[N]);
	}
} import java.util.Arrays; Arrays java.util import java.util.Scanner; Scanner java.util class Main{
	static int mod = 1000000007;
	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];
		for(int i = 0; i < M; i++) a[i] = sc.nextInt();
		int[] dp = new int[N + 3];
		Arrays.fill(dp, 0);
		dp[0] = 1;
		for(int i = 0; i < M; i++) dp[a[i]] = -1;
		for(int i = 0; i < N; i++) {
			if(dp[i] == -1) continue;
			if(dp[i + 1] != -1) {
				dp[i + 1] += dp[i];
				dp[i + 1] %= mod;
			}
			if(dp[i + 2] != -1) {
				dp[i + 2] += dp[i];
				dp[i + 2] %= mod;
			}
		}
		System.out.println(dp[N]);
	}
} Main static int mod = 1000000007; mod 1000000007 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];
		for(int i = 0; i < M; i++) a[i] = sc.nextInt();
		int[] dp = new int[N + 3];
		Arrays.fill(dp, 0);
		dp[0] = 1;
		for(int i = 0; i < M; i++) dp[a[i]] = -1;
		for(int i = 0; i < N; i++) {
			if(dp[i] == -1) continue;
			if(dp[i + 1] != -1) {
				dp[i + 1] += dp[i];
				dp[i + 1] %= mod;
			}
			if(dp[i + 2] != -1) {
				dp[i + 2] += dp[i];
				dp[i + 2] %= mod;
			}
		}
		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];
		for(int i = 0; i < M; i++) a[i] = sc.nextInt();
		int[] dp = new int[N + 3];
		Arrays.fill(dp, 0);
		dp[0] = 1;
		for(int i = 0; i < M; i++) dp[a[i]] = -1;
		for(int i = 0; i < N; i++) {
			if(dp[i] == -1) continue;
			if(dp[i + 1] != -1) {
				dp[i + 1] += dp[i];
				dp[i + 1] %= mod;
			}
			if(dp[i + 2] != -1) {
				dp[i + 2] += dp[i];
				dp[i + 2] %= mod;
			}
		}
		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]; a new int[M] M 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 int[] dp = new int[N + 3]; dp new int[N + 3] N + 3 N 3 Arrays.fill(dp, 0) Arrays.fill Arrays dp 0 dp[0] = 1 dp[0] dp 0 1 for(int i = 0; i < M; i++) dp[a[i]] = -1; int i = 0; int i = 0; i 0 i < M i M i++ i++ i dp[a[i]] = -1; dp[a[i]] = -1 dp[a[i]] dp a[i] a i -1 1 for(int i = 0; i < N; i++) {
			if(dp[i] == -1) continue;
			if(dp[i + 1] != -1) {
				dp[i + 1] += dp[i];
				dp[i + 1] %= mod;
			}
			if(dp[i + 2] != -1) {
				dp[i + 2] += dp[i];
				dp[i + 2] %= mod;
			}
		} int i = 0; int i = 0; i 0 i < N i N i++ i++ i {
			if(dp[i] == -1) continue;
			if(dp[i + 1] != -1) {
				dp[i + 1] += dp[i];
				dp[i + 1] %= mod;
			}
			if(dp[i + 2] != -1) {
				dp[i + 2] += dp[i];
				dp[i + 2] %= mod;
			}
		} {
			if(dp[i] == -1) continue;
			if(dp[i + 1] != -1) {
				dp[i + 1] += dp[i];
				dp[i + 1] %= mod;
			}
			if(dp[i + 2] != -1) {
				dp[i + 2] += dp[i];
				dp[i + 2] %= mod;
			}
		} if(dp[i] == -1) continue; dp[i] == -1 dp[i] dp i -1 1 continue; if(dp[i + 1] != -1) {
				dp[i + 1] += dp[i];
				dp[i + 1] %= mod;
			} dp[i + 1] != -1 dp[i + 1] dp i + 1 i 1 -1 1 {
				dp[i + 1] += dp[i];
				dp[i + 1] %= mod;
			} dp[i + 1] += dp[i] dp[i + 1] dp i + 1 i 1 dp[i] dp i dp[i + 1] %= mod dp[i + 1] dp i + 1 i 1 mod if(dp[i + 2] != -1) {
				dp[i + 2] += dp[i];
				dp[i + 2] %= mod;
			} dp[i + 2] != -1 dp[i + 2] dp i + 2 i 2 -1 1 {
				dp[i + 2] += dp[i];
				dp[i + 2] %= mod;
			} dp[i + 2] += dp[i] dp[i + 2] dp i + 2 i 2 dp[i] dp i dp[i + 2] %= mod dp[i + 2] dp i + 2 i 2 mod System.out.println(dp[N]) System.out.println System.out System System.out dp[N] dp N String args[] args
import java.util.Arrays;
import java.util.Scanner;

class Main{
	static int mod = 1000000007;
	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];
		for(int i = 0; i < M; i++) a[i] = sc.nextInt();
		int[] dp = new int[N + 3];
		Arrays.fill(dp, 0);
		dp[0] = 1;
		for(int i = 0; i < M; i++) dp[a[i]] = -1;
		for(int i = 0; i < N; i++) {
			if(dp[i] == -1) continue;
			if(dp[i + 1] != -1) {
				dp[i + 1] += dp[i];
				dp[i + 1] %= mod;
			}
			if(dp[i + 2] != -1) {
				dp[i + 2] += dp[i];
				dp[i + 2] %= mod;
			}
		}
		System.out.println(dp[N]);
	}
}