
import java.util.Scanner;

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

        Scanner scanner = new Scanner(System.in);
        int N = scanner.nextInt();
        int M = scanner.nextInt();

        boolean[] broken = new boolean[N+1];

        for (int i=0; i<M; i++) {
            broken[scanner.nextInt()] = true;
        }

        long[] dp = new long[N+2];
        dp[N+1] = 0;
        dp[N] = 1;
        for (int i=N-1; i >= 0; i--) {
            if (broken[i]) {
                dp[i] = 0;
                continue;
            }
            dp[i] = (dp[i+1] + dp[i+2]) % 1000000007;
        }
        System.out.println(dp[0]);
    }
} import java.util.Scanner; Scanner java.util public class Main {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        int N = scanner.nextInt();
        int M = scanner.nextInt();

        boolean[] broken = new boolean[N+1];

        for (int i=0; i<M; i++) {
            broken[scanner.nextInt()] = true;
        }

        long[] dp = new long[N+2];
        dp[N+1] = 0;
        dp[N] = 1;
        for (int i=N-1; i >= 0; i--) {
            if (broken[i]) {
                dp[i] = 0;
                continue;
            }
            dp[i] = (dp[i+1] + dp[i+2]) % 1000000007;
        }
        System.out.println(dp[0]);
    }
} Main public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        int N = scanner.nextInt();
        int M = scanner.nextInt();

        boolean[] broken = new boolean[N+1];

        for (int i=0; i<M; i++) {
            broken[scanner.nextInt()] = true;
        }

        long[] dp = new long[N+2];
        dp[N+1] = 0;
        dp[N] = 1;
        for (int i=N-1; i >= 0; i--) {
            if (broken[i]) {
                dp[i] = 0;
                continue;
            }
            dp[i] = (dp[i+1] + dp[i+2]) % 1000000007;
        }
        System.out.println(dp[0]);
    } main {

        Scanner scanner = new Scanner(System.in);
        int N = scanner.nextInt();
        int M = scanner.nextInt();

        boolean[] broken = new boolean[N+1];

        for (int i=0; i<M; i++) {
            broken[scanner.nextInt()] = true;
        }

        long[] dp = new long[N+2];
        dp[N+1] = 0;
        dp[N] = 1;
        for (int i=N-1; i >= 0; i--) {
            if (broken[i]) {
                dp[i] = 0;
                continue;
            }
            dp[i] = (dp[i+1] + dp[i+2]) % 1000000007;
        }
        System.out.println(dp[0]);
    } Scanner scanner = new Scanner(System.in); scanner new Scanner(System.in) int N = scanner.nextInt(); N scanner.nextInt() scanner.nextInt scanner int M = scanner.nextInt(); M scanner.nextInt() scanner.nextInt scanner boolean[] broken = new boolean[N+1]; broken new boolean[N+1] N+1 N 1 for (int i=0; i<M; i++) {
            broken[scanner.nextInt()] = true;
        } int i=0; int i=0; i 0 i<M i M i++ i++ i {
            broken[scanner.nextInt()] = true;
        } {
            broken[scanner.nextInt()] = true;
        } broken[scanner.nextInt()] = true broken[scanner.nextInt()] broken scanner.nextInt() scanner.nextInt scanner true long[] dp = new long[N+2]; dp new long[N+2] N+2 N 2 dp[N+1] = 0 dp[N+1] dp N+1 N 1 0 dp[N] = 1 dp[N] dp N 1 for (int i=N-1; i >= 0; i--) {
            if (broken[i]) {
                dp[i] = 0;
                continue;
            }
            dp[i] = (dp[i+1] + dp[i+2]) % 1000000007;
        } int i=N-1; int i=N-1; i N-1 N 1 i >= 0 i 0 i-- i-- i {
            if (broken[i]) {
                dp[i] = 0;
                continue;
            }
            dp[i] = (dp[i+1] + dp[i+2]) % 1000000007;
        } {
            if (broken[i]) {
                dp[i] = 0;
                continue;
            }
            dp[i] = (dp[i+1] + dp[i+2]) % 1000000007;
        } if (broken[i]) {
                dp[i] = 0;
                continue;
            } broken[i] broken i {
                dp[i] = 0;
                continue;
            } dp[i] = 0 dp[i] dp i 0 continue; 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[0]) System.out.println System.out System System.out dp[0] dp 0 String[] args args public class Main {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        int N = scanner.nextInt();
        int M = scanner.nextInt();

        boolean[] broken = new boolean[N+1];

        for (int i=0; i<M; i++) {
            broken[scanner.nextInt()] = true;
        }

        long[] dp = new long[N+2];
        dp[N+1] = 0;
        dp[N] = 1;
        for (int i=N-1; i >= 0; i--) {
            if (broken[i]) {
                dp[i] = 0;
                continue;
            }
            dp[i] = (dp[i+1] + dp[i+2]) % 1000000007;
        }
        System.out.println(dp[0]);
    }
} public class Main {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        int N = scanner.nextInt();
        int M = scanner.nextInt();

        boolean[] broken = new boolean[N+1];

        for (int i=0; i<M; i++) {
            broken[scanner.nextInt()] = true;
        }

        long[] dp = new long[N+2];
        dp[N+1] = 0;
        dp[N] = 1;
        for (int i=N-1; i >= 0; i--) {
            if (broken[i]) {
                dp[i] = 0;
                continue;
            }
            dp[i] = (dp[i+1] + dp[i+2]) % 1000000007;
        }
        System.out.println(dp[0]);
    }
} Main

import java.util.Scanner;

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

        Scanner scanner = new Scanner(System.in);
        int N = scanner.nextInt();
        int M = scanner.nextInt();

        boolean[] broken = new boolean[N+1];

        for (int i=0; i<M; i++) {
            broken[scanner.nextInt()] = true;
        }

        long[] dp = new long[N+2];
        dp[N+1] = 0;
        dp[N] = 1;
        for (int i=N-1; i >= 0; i--) {
            if (broken[i]) {
                dp[i] = 0;
                continue;
            }
            dp[i] = (dp[i+1] + dp[i+2]) % 1000000007;
        }
        System.out.println(dp[0]);
    }
}
