


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();
		int[] a = new int[m];

		for (int i = 0; i < m; i++) {
			a[i] = sc.nextInt();
		}

		int[] dp = new int[n + 1];

		for (int i = 0; i < n + 1; i++) {
			dp[i] = 1;
		}
		for (int i = 0; i < m; i++) {
			dp[a[i]] = 0;
		}

		for (int i = 2; i < n + 1; i++) {
			if (dp[i] == 1)
				dp[i] = (dp[i - 1] + dp[i - 2]) % 1000000007;
		}

		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();
		int[] a = new int[m];

		for (int i = 0; i < m; i++) {
			a[i] = sc.nextInt();
		}

		int[] dp = new int[n + 1];

		for (int i = 0; i < n + 1; i++) {
			dp[i] = 1;
		}
		for (int i = 0; i < m; i++) {
			dp[a[i]] = 0;
		}

		for (int i = 2; i < n + 1; i++) {
			if (dp[i] == 1)
				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];

		for (int i = 0; i < m; i++) {
			a[i] = sc.nextInt();
		}

		int[] dp = new int[n + 1];

		for (int i = 0; i < n + 1; i++) {
			dp[i] = 1;
		}
		for (int i = 0; i < m; i++) {
			dp[a[i]] = 0;
		}

		for (int i = 2; i < n + 1; i++) {
			if (dp[i] == 1)
				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];

		for (int i = 0; i < m; i++) {
			a[i] = sc.nextInt();
		}

		int[] dp = new int[n + 1];

		for (int i = 0; i < n + 1; i++) {
			dp[i] = 1;
		}
		for (int i = 0; i < m; i++) {
			dp[a[i]] = 0;
		}

		for (int i = 2; i < n + 1; i++) {
			if (dp[i] == 1)
				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]; 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] = sc.nextInt() a[i] a i sc.nextInt() sc.nextInt sc int[] dp = new int[n + 1]; dp new int[n + 1] n + 1 n 1 for (int i = 0; i < n + 1; i++) {
			dp[i] = 1;
		} int i = 0; int i = 0; i 0 i < n + 1 i n + 1 n 1 i++ i++ i {
			dp[i] = 1;
		} {
			dp[i] = 1;
		} dp[i] = 1 dp[i] dp i 1 for (int i = 0; i < m; i++) {
			dp[a[i]] = 0;
		} int i = 0; int i = 0; i 0 i < m i m i++ i++ i {
			dp[a[i]] = 0;
		} {
			dp[a[i]] = 0;
		} dp[a[i]] = 0 dp[a[i]] dp a[i] a i 0 for (int i = 2; i < n + 1; i++) {
			if (dp[i] == 1)
				dp[i] = (dp[i - 1] + dp[i - 2]) % 1000000007;
		} int i = 2; int i = 2; i 2 i < n + 1 i n + 1 n 1 i++ i++ i {
			if (dp[i] == 1)
				dp[i] = (dp[i - 1] + dp[i - 2]) % 1000000007;
		} {
			if (dp[i] == 1)
				dp[i] = (dp[i - 1] + dp[i - 2]) % 1000000007;
		} if (dp[i] == 1)
				dp[i] = (dp[i - 1] + dp[i - 2]) % 1000000007; dp[i] == 1 dp[i] dp i 1 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];

		for (int i = 0; i < m; i++) {
			a[i] = sc.nextInt();
		}

		int[] dp = new int[n + 1];

		for (int i = 0; i < n + 1; i++) {
			dp[i] = 1;
		}
		for (int i = 0; i < m; i++) {
			dp[a[i]] = 0;
		}

		for (int i = 2; i < n + 1; i++) {
			if (dp[i] == 1)
				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];

		for (int i = 0; i < m; i++) {
			a[i] = sc.nextInt();
		}

		int[] dp = new int[n + 1];

		for (int i = 0; i < n + 1; i++) {
			dp[i] = 1;
		}
		for (int i = 0; i < m; i++) {
			dp[a[i]] = 0;
		}

		for (int i = 2; i < n + 1; i++) {
			if (dp[i] == 1)
				dp[i] = (dp[i - 1] + dp[i - 2]) % 1000000007;
		}

		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();
		int[] a = new int[m];

		for (int i = 0; i < m; i++) {
			a[i] = sc.nextInt();
		}

		int[] dp = new int[n + 1];

		for (int i = 0; i < n + 1; i++) {
			dp[i] = 1;
		}
		for (int i = 0; i < m; i++) {
			dp[a[i]] = 0;
		}

		for (int i = 2; i < n + 1; i++) {
			if (dp[i] == 1)
				dp[i] = (dp[i - 1] + dp[i - 2]) % 1000000007;
		}

		System.out.println(dp[n]);
	}

}
