import 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 + 1];
        if(M==0){
            a[0] = 0;
        }
        else{
            a[0] = sc.nextInt();
        }

        for(int i=1; i<M; i++){
            a[i] = sc.nextInt();
            if(a[i]==a[i-1]+1){
                System.out.println(0);
                return;
            }
        }

        int[] ans = new int[N + 1];
        ans[0] = 1;
        int x = 0;
        if(a[0]==1){
            ans[1] = 0;
            x += 1;
        }
        else{
            ans[1] = 1;
        }
        for(int i=2; i<=N; i++){
            if(i==a[x]){
                ans[i] = 0;
                x += 1;
            }
            else{
                ans[i] = (ans[i - 1] + ans[i - 2]) % 1000000007;
            }
        }
        System.out.println(ans[N]);
    }
} import java.util.*; util.* java 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 + 1];
        if(M==0){
            a[0] = 0;
        }
        else{
            a[0] = sc.nextInt();
        }

        for(int i=1; i<M; i++){
            a[i] = sc.nextInt();
            if(a[i]==a[i-1]+1){
                System.out.println(0);
                return;
            }
        }

        int[] ans = new int[N + 1];
        ans[0] = 1;
        int x = 0;
        if(a[0]==1){
            ans[1] = 0;
            x += 1;
        }
        else{
            ans[1] = 1;
        }
        for(int i=2; i<=N; i++){
            if(i==a[x]){
                ans[i] = 0;
                x += 1;
            }
            else{
                ans[i] = (ans[i - 1] + ans[i - 2]) % 1000000007;
            }
        }
        System.out.println(ans[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 + 1];
        if(M==0){
            a[0] = 0;
        }
        else{
            a[0] = sc.nextInt();
        }

        for(int i=1; i<M; i++){
            a[i] = sc.nextInt();
            if(a[i]==a[i-1]+1){
                System.out.println(0);
                return;
            }
        }

        int[] ans = new int[N + 1];
        ans[0] = 1;
        int x = 0;
        if(a[0]==1){
            ans[1] = 0;
            x += 1;
        }
        else{
            ans[1] = 1;
        }
        for(int i=2; i<=N; i++){
            if(i==a[x]){
                ans[i] = 0;
                x += 1;
            }
            else{
                ans[i] = (ans[i - 1] + ans[i - 2]) % 1000000007;
            }
        }
        System.out.println(ans[N]);
    } main {
        Scanner sc = new Scanner(System.in);
 
        int N = sc.nextInt();
        int M = sc.nextInt();
        int[] a = new int[M + 1];
        if(M==0){
            a[0] = 0;
        }
        else{
            a[0] = sc.nextInt();
        }

        for(int i=1; i<M; i++){
            a[i] = sc.nextInt();
            if(a[i]==a[i-1]+1){
                System.out.println(0);
                return;
            }
        }

        int[] ans = new int[N + 1];
        ans[0] = 1;
        int x = 0;
        if(a[0]==1){
            ans[1] = 0;
            x += 1;
        }
        else{
            ans[1] = 1;
        }
        for(int i=2; i<=N; i++){
            if(i==a[x]){
                ans[i] = 0;
                x += 1;
            }
            else{
                ans[i] = (ans[i - 1] + ans[i - 2]) % 1000000007;
            }
        }
        System.out.println(ans[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 + 1]; a new int[M + 1] M + 1 M 1 if(M==0){
            a[0] = 0;
        }
        else{
            a[0] = sc.nextInt();
        } M==0 M 0 {
            a[0] = 0;
        } a[0] = 0 a[0] a 0 0 {
            a[0] = sc.nextInt();
        } a[0] = sc.nextInt() a[0] a 0 sc.nextInt() sc.nextInt sc for(int i=1; i<M; i++){
            a[i] = sc.nextInt();
            if(a[i]==a[i-1]+1){
                System.out.println(0);
                return;
            }
        } int i=1; int i=1; i 1 i<M i M i++ i++ i {
            a[i] = sc.nextInt();
            if(a[i]==a[i-1]+1){
                System.out.println(0);
                return;
            }
        } {
            a[i] = sc.nextInt();
            if(a[i]==a[i-1]+1){
                System.out.println(0);
                return;
            }
        } a[i] = sc.nextInt() a[i] a i sc.nextInt() sc.nextInt sc if(a[i]==a[i-1]+1){
                System.out.println(0);
                return;
            } a[i]==a[i-1]+1 a[i] a i a[i-1]+1 a[i-1] a i-1 i 1 1 {
                System.out.println(0);
                return;
            } System.out.println(0) System.out.println System.out System System.out 0 return; int[] ans = new int[N + 1]; ans new int[N + 1] N + 1 N 1 ans[0] = 1 ans[0] ans 0 1 int x = 0; x 0 if(a[0]==1){
            ans[1] = 0;
            x += 1;
        }
        else{
            ans[1] = 1;
        } a[0]==1 a[0] a 0 1 {
            ans[1] = 0;
            x += 1;
        } ans[1] = 0 ans[1] ans 1 0 x += 1 x 1 {
            ans[1] = 1;
        } ans[1] = 1 ans[1] ans 1 1 for(int i=2; i<=N; i++){
            if(i==a[x]){
                ans[i] = 0;
                x += 1;
            }
            else{
                ans[i] = (ans[i - 1] + ans[i - 2]) % 1000000007;
            }
        } int i=2; int i=2; i 2 i<=N i N i++ i++ i {
            if(i==a[x]){
                ans[i] = 0;
                x += 1;
            }
            else{
                ans[i] = (ans[i - 1] + ans[i - 2]) % 1000000007;
            }
        } {
            if(i==a[x]){
                ans[i] = 0;
                x += 1;
            }
            else{
                ans[i] = (ans[i - 1] + ans[i - 2]) % 1000000007;
            }
        } if(i==a[x]){
                ans[i] = 0;
                x += 1;
            }
            else{
                ans[i] = (ans[i - 1] + ans[i - 2]) % 1000000007;
            } i==a[x] i a[x] a x {
                ans[i] = 0;
                x += 1;
            } ans[i] = 0 ans[i] ans i 0 x += 1 x 1 {
                ans[i] = (ans[i - 1] + ans[i - 2]) % 1000000007;
            } ans[i] = (ans[i - 1] + ans[i - 2]) % 1000000007 ans[i] ans i (ans[i - 1] + ans[i - 2]) % 1000000007 (ans[i - 1] + ans[i - 2]) ans[i - 1] ans i - 1 i 1 ans[i - 2] ans i - 2 i 2 1000000007 System.out.println(ans[N]) System.out.println System.out System System.out ans[N] ans 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 + 1];
        if(M==0){
            a[0] = 0;
        }
        else{
            a[0] = sc.nextInt();
        }

        for(int i=1; i<M; i++){
            a[i] = sc.nextInt();
            if(a[i]==a[i-1]+1){
                System.out.println(0);
                return;
            }
        }

        int[] ans = new int[N + 1];
        ans[0] = 1;
        int x = 0;
        if(a[0]==1){
            ans[1] = 0;
            x += 1;
        }
        else{
            ans[1] = 1;
        }
        for(int i=2; i<=N; i++){
            if(i==a[x]){
                ans[i] = 0;
                x += 1;
            }
            else{
                ans[i] = (ans[i - 1] + ans[i - 2]) % 1000000007;
            }
        }
        System.out.println(ans[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 + 1];
        if(M==0){
            a[0] = 0;
        }
        else{
            a[0] = sc.nextInt();
        }

        for(int i=1; i<M; i++){
            a[i] = sc.nextInt();
            if(a[i]==a[i-1]+1){
                System.out.println(0);
                return;
            }
        }

        int[] ans = new int[N + 1];
        ans[0] = 1;
        int x = 0;
        if(a[0]==1){
            ans[1] = 0;
            x += 1;
        }
        else{
            ans[1] = 1;
        }
        for(int i=2; i<=N; i++){
            if(i==a[x]){
                ans[i] = 0;
                x += 1;
            }
            else{
                ans[i] = (ans[i - 1] + ans[i - 2]) % 1000000007;
            }
        }
        System.out.println(ans[N]);
    }
} Main
import 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 + 1];
        if(M==0){
            a[0] = 0;
        }
        else{
            a[0] = sc.nextInt();
        }

        for(int i=1; i<M; i++){
            a[i] = sc.nextInt();
            if(a[i]==a[i-1]+1){
                System.out.println(0);
                return;
            }
        }

        int[] ans = new int[N + 1];
        ans[0] = 1;
        int x = 0;
        if(a[0]==1){
            ans[1] = 0;
            x += 1;
        }
        else{
            ans[1] = 1;
        }
        for(int i=2; i<=N; i++){
            if(i==a[x]){
                ans[i] = 0;
                x += 1;
            }
            else{
                ans[i] = (ans[i - 1] + ans[i - 2]) % 1000000007;
            }
        }
        System.out.println(ans[N]);
    }
}