import 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();

        int[] a = new int[N+1];
        a[0] = 1;

        int DIV = (int)1e9 + 7;

        for(int i=0; i<M; i++){
            int tmp = scanner.nextInt();
            a[tmp] = -1;
        }

        for(int i=0; i<N; i++){
            if(i+1 == N){
                if(a[i] != -1 && a[i+1]!=-1){
                    a[i+1] += a[i];
                    a[i+1] %= DIV;
                }
            }else{
                // one
                if(a[i+1] != -1 && a[i] != -1){
                    a[i+1] += a[i];
                    a[i+1] %= DIV;
                }
                // two
                if(a[i+2] != -1 && a[i] != -1){
                    a[i+2] += a[i];
                    a[i+2] %= DIV;
                }
            }
        }

        System.out.println(a[N]);
    }
} import java.util.*; util.* java public class Main {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        int N = scanner.nextInt();
        int M = scanner.nextInt();

        int[] a = new int[N+1];
        a[0] = 1;

        int DIV = (int)1e9 + 7;

        for(int i=0; i<M; i++){
            int tmp = scanner.nextInt();
            a[tmp] = -1;
        }

        for(int i=0; i<N; i++){
            if(i+1 == N){
                if(a[i] != -1 && a[i+1]!=-1){
                    a[i+1] += a[i];
                    a[i+1] %= DIV;
                }
            }else{
                // one
                if(a[i+1] != -1 && a[i] != -1){
                    a[i+1] += a[i];
                    a[i+1] %= DIV;
                }
                // two
                if(a[i+2] != -1 && a[i] != -1){
                    a[i+2] += a[i];
                    a[i+2] %= DIV;
                }
            }
        }

        System.out.println(a[N]);
    }
} Main public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        int N = scanner.nextInt();
        int M = scanner.nextInt();

        int[] a = new int[N+1];
        a[0] = 1;

        int DIV = (int)1e9 + 7;

        for(int i=0; i<M; i++){
            int tmp = scanner.nextInt();
            a[tmp] = -1;
        }

        for(int i=0; i<N; i++){
            if(i+1 == N){
                if(a[i] != -1 && a[i+1]!=-1){
                    a[i+1] += a[i];
                    a[i+1] %= DIV;
                }
            }else{
                // one
                if(a[i+1] != -1 && a[i] != -1){
                    a[i+1] += a[i];
                    a[i+1] %= DIV;
                }
                // two
                if(a[i+2] != -1 && a[i] != -1){
                    a[i+2] += a[i];
                    a[i+2] %= DIV;
                }
            }
        }

        System.out.println(a[N]);
    } main {

        Scanner scanner = new Scanner(System.in);

        int N = scanner.nextInt();
        int M = scanner.nextInt();

        int[] a = new int[N+1];
        a[0] = 1;

        int DIV = (int)1e9 + 7;

        for(int i=0; i<M; i++){
            int tmp = scanner.nextInt();
            a[tmp] = -1;
        }

        for(int i=0; i<N; i++){
            if(i+1 == N){
                if(a[i] != -1 && a[i+1]!=-1){
                    a[i+1] += a[i];
                    a[i+1] %= DIV;
                }
            }else{
                // one
                if(a[i+1] != -1 && a[i] != -1){
                    a[i+1] += a[i];
                    a[i+1] %= DIV;
                }
                // two
                if(a[i+2] != -1 && a[i] != -1){
                    a[i+2] += a[i];
                    a[i+2] %= DIV;
                }
            }
        }

        System.out.println(a[N]);
    } 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 int[] a = new int[N+1]; a new int[N+1] N+1 N 1 a[0] = 1 a[0] a 0 1 int DIV = (int)1e9 + 7; DIV (int)1e9 + 7 (int)1e9 7 for(int i=0; i<M; i++){
            int tmp = scanner.nextInt();
            a[tmp] = -1;
        } int i=0; int i=0; i 0 i<M i M i++ i++ i {
            int tmp = scanner.nextInt();
            a[tmp] = -1;
        } {
            int tmp = scanner.nextInt();
            a[tmp] = -1;
        } int tmp = scanner.nextInt(); tmp scanner.nextInt() scanner.nextInt scanner a[tmp] = -1 a[tmp] a tmp -1 1 for(int i=0; i<N; i++){
            if(i+1 == N){
                if(a[i] != -1 && a[i+1]!=-1){
                    a[i+1] += a[i];
                    a[i+1] %= DIV;
                }
            }else{
                // one
                if(a[i+1] != -1 && a[i] != -1){
                    a[i+1] += a[i];
                    a[i+1] %= DIV;
                }
                // two
                if(a[i+2] != -1 && a[i] != -1){
                    a[i+2] += a[i];
                    a[i+2] %= DIV;
                }
            }
        } int i=0; int i=0; i 0 i<N i N i++ i++ i {
            if(i+1 == N){
                if(a[i] != -1 && a[i+1]!=-1){
                    a[i+1] += a[i];
                    a[i+1] %= DIV;
                }
            }else{
                // one
                if(a[i+1] != -1 && a[i] != -1){
                    a[i+1] += a[i];
                    a[i+1] %= DIV;
                }
                // two
                if(a[i+2] != -1 && a[i] != -1){
                    a[i+2] += a[i];
                    a[i+2] %= DIV;
                }
            }
        } {
            if(i+1 == N){
                if(a[i] != -1 && a[i+1]!=-1){
                    a[i+1] += a[i];
                    a[i+1] %= DIV;
                }
            }else{
                // one
                if(a[i+1] != -1 && a[i] != -1){
                    a[i+1] += a[i];
                    a[i+1] %= DIV;
                }
                // two
                if(a[i+2] != -1 && a[i] != -1){
                    a[i+2] += a[i];
                    a[i+2] %= DIV;
                }
            }
        } if(i+1 == N){
                if(a[i] != -1 && a[i+1]!=-1){
                    a[i+1] += a[i];
                    a[i+1] %= DIV;
                }
            }else{
                // one
                if(a[i+1] != -1 && a[i] != -1){
                    a[i+1] += a[i];
                    a[i+1] %= DIV;
                }
                // two
                if(a[i+2] != -1 && a[i] != -1){
                    a[i+2] += a[i];
                    a[i+2] %= DIV;
                }
            } i+1 == N i+1 i 1 N {
                if(a[i] != -1 && a[i+1]!=-1){
                    a[i+1] += a[i];
                    a[i+1] %= DIV;
                }
            } if(a[i] != -1 && a[i+1]!=-1){
                    a[i+1] += a[i];
                    a[i+1] %= DIV;
                } a[i] != -1 && a[i+1]!=-1 a[i] != -1 a[i] a i -1 1 a[i+1]!=-1 a[i+1] a i+1 i 1 -1 1 {
                    a[i+1] += a[i];
                    a[i+1] %= DIV;
                } a[i+1] += a[i] a[i+1] a i+1 i 1 a[i] a i a[i+1] %= DIV a[i+1] a i+1 i 1 DIV {
                // one
                if(a[i+1] != -1 && a[i] != -1){
                    a[i+1] += a[i];
                    a[i+1] %= DIV;
                }
                // two
                if(a[i+2] != -1 && a[i] != -1){
                    a[i+2] += a[i];
                    a[i+2] %= DIV;
                }
            } if(a[i+1] != -1 && a[i] != -1){
                    a[i+1] += a[i];
                    a[i+1] %= DIV;
                } a[i+1] != -1 && a[i] != -1 a[i+1] != -1 a[i+1] a i+1 i 1 -1 1 a[i] != -1 a[i] a i -1 1 {
                    a[i+1] += a[i];
                    a[i+1] %= DIV;
                } a[i+1] += a[i] a[i+1] a i+1 i 1 a[i] a i a[i+1] %= DIV a[i+1] a i+1 i 1 DIV if(a[i+2] != -1 && a[i] != -1){
                    a[i+2] += a[i];
                    a[i+2] %= DIV;
                } a[i+2] != -1 && a[i] != -1 a[i+2] != -1 a[i+2] a i+2 i 2 -1 1 a[i] != -1 a[i] a i -1 1 {
                    a[i+2] += a[i];
                    a[i+2] %= DIV;
                } a[i+2] += a[i] a[i+2] a i+2 i 2 a[i] a i a[i+2] %= DIV a[i+2] a i+2 i 2 DIV System.out.println(a[N]) System.out.println System.out System System.out a[N] a N 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();

        int[] a = new int[N+1];
        a[0] = 1;

        int DIV = (int)1e9 + 7;

        for(int i=0; i<M; i++){
            int tmp = scanner.nextInt();
            a[tmp] = -1;
        }

        for(int i=0; i<N; i++){
            if(i+1 == N){
                if(a[i] != -1 && a[i+1]!=-1){
                    a[i+1] += a[i];
                    a[i+1] %= DIV;
                }
            }else{
                // one
                if(a[i+1] != -1 && a[i] != -1){
                    a[i+1] += a[i];
                    a[i+1] %= DIV;
                }
                // two
                if(a[i+2] != -1 && a[i] != -1){
                    a[i+2] += a[i];
                    a[i+2] %= DIV;
                }
            }
        }

        System.out.println(a[N]);
    }
} public class Main {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        int N = scanner.nextInt();
        int M = scanner.nextInt();

        int[] a = new int[N+1];
        a[0] = 1;

        int DIV = (int)1e9 + 7;

        for(int i=0; i<M; i++){
            int tmp = scanner.nextInt();
            a[tmp] = -1;
        }

        for(int i=0; i<N; i++){
            if(i+1 == N){
                if(a[i] != -1 && a[i+1]!=-1){
                    a[i+1] += a[i];
                    a[i+1] %= DIV;
                }
            }else{
                // one
                if(a[i+1] != -1 && a[i] != -1){
                    a[i+1] += a[i];
                    a[i+1] %= DIV;
                }
                // two
                if(a[i+2] != -1 && a[i] != -1){
                    a[i+2] += a[i];
                    a[i+2] %= DIV;
                }
            }
        }

        System.out.println(a[N]);
    }
} Main
import 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();

        int[] a = new int[N+1];
        a[0] = 1;

        int DIV = (int)1e9 + 7;

        for(int i=0; i<M; i++){
            int tmp = scanner.nextInt();
            a[tmp] = -1;
        }

        for(int i=0; i<N; i++){
            if(i+1 == N){
                if(a[i] != -1 && a[i+1]!=-1){
                    a[i+1] += a[i];
                    a[i+1] %= DIV;
                }
            }else{
                // one
                if(a[i+1] != -1 && a[i] != -1){
                    a[i+1] += a[i];
                    a[i+1] %= DIV;
                }
                // two
                if(a[i+2] != -1 && a[i] != -1){
                    a[i+2] += a[i];
                    a[i+2] %= DIV;
                }
            }
        }

        System.out.println(a[N]);
    }
}
