import java.util.*;
class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();

        if(m==0) {
            long[] dp = new long[n+1];
            dp[0] = 1;
            dp[1] = 1;

            for(int i = 2; i<n+1; i++) {
                dp[i] = (dp[i-1]+dp[i-2])%1000000007;
            }
            System.out.println(dp[n]);
            return;
        }


        long[] a = new long[m];
        long[] dp = new long[n+1];



        for(int i = 0; i<m; i++) {
            a[i] = sc.nextInt();
            dp[(int)a[i]] = -1;
        }
        dp[0] = 1;
        dp[1] = (a[0]==1)?0:1;

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

    }
} import java.util.*; util.* java class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();

        if(m==0) {
            long[] dp = new long[n+1];
            dp[0] = 1;
            dp[1] = 1;

            for(int i = 2; i<n+1; i++) {
                dp[i] = (dp[i-1]+dp[i-2])%1000000007;
            }
            System.out.println(dp[n]);
            return;
        }


        long[] a = new long[m];
        long[] dp = new long[n+1];



        for(int i = 0; i<m; i++) {
            a[i] = sc.nextInt();
            dp[(int)a[i]] = -1;
        }
        dp[0] = 1;
        dp[1] = (a[0]==1)?0:1;

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

        if(m==0) {
            long[] dp = new long[n+1];
            dp[0] = 1;
            dp[1] = 1;

            for(int i = 2; i<n+1; i++) {
                dp[i] = (dp[i-1]+dp[i-2])%1000000007;
            }
            System.out.println(dp[n]);
            return;
        }


        long[] a = new long[m];
        long[] dp = new long[n+1];



        for(int i = 0; i<m; i++) {
            a[i] = sc.nextInt();
            dp[(int)a[i]] = -1;
        }
        dp[0] = 1;
        dp[1] = (a[0]==1)?0:1;

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

        if(m==0) {
            long[] dp = new long[n+1];
            dp[0] = 1;
            dp[1] = 1;

            for(int i = 2; i<n+1; i++) {
                dp[i] = (dp[i-1]+dp[i-2])%1000000007;
            }
            System.out.println(dp[n]);
            return;
        }


        long[] a = new long[m];
        long[] dp = new long[n+1];



        for(int i = 0; i<m; i++) {
            a[i] = sc.nextInt();
            dp[(int)a[i]] = -1;
        }
        dp[0] = 1;
        dp[1] = (a[0]==1)?0:1;

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

            for(int i = 2; i<n+1; i++) {
                dp[i] = (dp[i-1]+dp[i-2])%1000000007;
            }
            System.out.println(dp[n]);
            return;
        } m==0 m 0 {
            long[] dp = new long[n+1];
            dp[0] = 1;
            dp[1] = 1;

            for(int i = 2; i<n+1; i++) {
                dp[i] = (dp[i-1]+dp[i-2])%1000000007;
            }
            System.out.println(dp[n]);
            return;
        } long[] dp = new long[n+1]; dp new long[n+1] n+1 n 1 dp[0] = 1 dp[0] dp 0 1 dp[1] = 1 dp[1] dp 1 1 for(int i = 2; i<n+1; i++) {
                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 {
                dp[i] = (dp[i-1]+dp[i-2])%1000000007;
            } {
                dp[i] = (dp[i-1]+dp[i-2])%1000000007;
            } 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 return; long[] a = new long[m]; a new long[m] m long[] dp = new long[n+1]; dp new long[n+1] n+1 n 1 for(int i = 0; i<m; i++) {
            a[i] = sc.nextInt();
            dp[(int)a[i]] = -1;
        } int i = 0; int i = 0; i 0 i<m i m i++ i++ i {
            a[i] = sc.nextInt();
            dp[(int)a[i]] = -1;
        } {
            a[i] = sc.nextInt();
            dp[(int)a[i]] = -1;
        } a[i] = sc.nextInt() a[i] a i sc.nextInt() sc.nextInt sc dp[(int)a[i]] = -1 dp[(int)a[i]] dp (int)a[i] a i -1 1 dp[0] = 1 dp[0] dp 0 1 dp[1] = (a[0]==1)?0:1 dp[1] dp 1 (a[0]==1)?0:1 (a[0]==1) a[0] a 0 1 0 1 for(int i = 2; i<n+1; i++) {
            if(dp[i]==-1) dp[i] = 0;
            else 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] = 0;
            else dp[i] = (dp[i-1]+dp[i-2])%1000000007;
        } {
            if(dp[i]==-1) dp[i] = 0;
            else dp[i] = (dp[i-1]+dp[i-2])%1000000007;
        } if(dp[i]==-1) dp[i] = 0;
            else dp[i] = (dp[i-1]+dp[i-2])%1000000007; dp[i]==-1 dp[i] dp i -1 1 dp[i] = 0 dp[i] dp i 0 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
import java.util.*;
class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();

        if(m==0) {
            long[] dp = new long[n+1];
            dp[0] = 1;
            dp[1] = 1;

            for(int i = 2; i<n+1; i++) {
                dp[i] = (dp[i-1]+dp[i-2])%1000000007;
            }
            System.out.println(dp[n]);
            return;
        }


        long[] a = new long[m];
        long[] dp = new long[n+1];



        for(int i = 0; i<m; i++) {
            a[i] = sc.nextInt();
            dp[(int)a[i]] = -1;
        }
        dp[0] = 1;
        dp[1] = (a[0]==1)?0:1;

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

    }
}