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[] t = new int[n+1];
		boolean flg = true;
		int ans = 0;
		int mod = 1000000007;

		for(int i=0;i<m;i++)t[sc.nextInt()]=-1;
		t[0]=1;

		for(int i=0;i<n-1;i++){
			if(t[i]!=-1){
				if(t[i+1]!=-1){
					t[i+1]=(t[i]+t[i+1])%mod;
				}
				if(t[i+2]!=-1){
					t[i+2]=(t[i]+t[i+2])%mod;
				}
				if(t[i+1]==-1&&t[i+2]==-1){
					flg=false;
					break;
				}
			}
		}

		if(flg){
			if(t[n-1]!=-1){
				ans = (t[n]+t[n-1])%mod;
				
			} else {
				ans = t[n]%mod;
			}
		}

		// 出力
		System.out.println(ans);
	}
} 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[] t = new int[n+1];
		boolean flg = true;
		int ans = 0;
		int mod = 1000000007;

		for(int i=0;i<m;i++)t[sc.nextInt()]=-1;
		t[0]=1;

		for(int i=0;i<n-1;i++){
			if(t[i]!=-1){
				if(t[i+1]!=-1){
					t[i+1]=(t[i]+t[i+1])%mod;
				}
				if(t[i+2]!=-1){
					t[i+2]=(t[i]+t[i+2])%mod;
				}
				if(t[i+1]==-1&&t[i+2]==-1){
					flg=false;
					break;
				}
			}
		}

		if(flg){
			if(t[n-1]!=-1){
				ans = (t[n]+t[n-1])%mod;
				
			} else {
				ans = t[n]%mod;
			}
		}

		// 出力
		System.out.println(ans);
	}
} Main public static void main(String[] args){
		Scanner sc = new Scanner(System.in);

		// 整数の入力
		int n = sc.nextInt();
		int m = sc.nextInt();

		int[] t = new int[n+1];
		boolean flg = true;
		int ans = 0;
		int mod = 1000000007;

		for(int i=0;i<m;i++)t[sc.nextInt()]=-1;
		t[0]=1;

		for(int i=0;i<n-1;i++){
			if(t[i]!=-1){
				if(t[i+1]!=-1){
					t[i+1]=(t[i]+t[i+1])%mod;
				}
				if(t[i+2]!=-1){
					t[i+2]=(t[i]+t[i+2])%mod;
				}
				if(t[i+1]==-1&&t[i+2]==-1){
					flg=false;
					break;
				}
			}
		}

		if(flg){
			if(t[n-1]!=-1){
				ans = (t[n]+t[n-1])%mod;
				
			} else {
				ans = t[n]%mod;
			}
		}

		// 出力
		System.out.println(ans);
	} main {
		Scanner sc = new Scanner(System.in);

		// 整数の入力
		int n = sc.nextInt();
		int m = sc.nextInt();

		int[] t = new int[n+1];
		boolean flg = true;
		int ans = 0;
		int mod = 1000000007;

		for(int i=0;i<m;i++)t[sc.nextInt()]=-1;
		t[0]=1;

		for(int i=0;i<n-1;i++){
			if(t[i]!=-1){
				if(t[i+1]!=-1){
					t[i+1]=(t[i]+t[i+1])%mod;
				}
				if(t[i+2]!=-1){
					t[i+2]=(t[i]+t[i+2])%mod;
				}
				if(t[i+1]==-1&&t[i+2]==-1){
					flg=false;
					break;
				}
			}
		}

		if(flg){
			if(t[n-1]!=-1){
				ans = (t[n]+t[n-1])%mod;
				
			} else {
				ans = t[n]%mod;
			}
		}

		// 出力
		System.out.println(ans);
	} 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[] t = new int[n+1]; t new int[n+1] n+1 n 1 boolean flg = true; flg true int ans = 0; ans 0 int mod = 1000000007; mod 1000000007 for(int i=0;i<m;i++)t[sc.nextInt()]=-1; int i=0; int i=0; i 0 i<m i m i++ i++ i t[sc.nextInt()]=-1; t[sc.nextInt()]=-1 t[sc.nextInt()] t sc.nextInt() sc.nextInt sc -1 1 t[0]=1 t[0] t 0 1 for(int i=0;i<n-1;i++){
			if(t[i]!=-1){
				if(t[i+1]!=-1){
					t[i+1]=(t[i]+t[i+1])%mod;
				}
				if(t[i+2]!=-1){
					t[i+2]=(t[i]+t[i+2])%mod;
				}
				if(t[i+1]==-1&&t[i+2]==-1){
					flg=false;
					break;
				}
			}
		} int i=0; int i=0; i 0 i<n-1 i n-1 n 1 i++ i++ i {
			if(t[i]!=-1){
				if(t[i+1]!=-1){
					t[i+1]=(t[i]+t[i+1])%mod;
				}
				if(t[i+2]!=-1){
					t[i+2]=(t[i]+t[i+2])%mod;
				}
				if(t[i+1]==-1&&t[i+2]==-1){
					flg=false;
					break;
				}
			}
		} {
			if(t[i]!=-1){
				if(t[i+1]!=-1){
					t[i+1]=(t[i]+t[i+1])%mod;
				}
				if(t[i+2]!=-1){
					t[i+2]=(t[i]+t[i+2])%mod;
				}
				if(t[i+1]==-1&&t[i+2]==-1){
					flg=false;
					break;
				}
			}
		} if(t[i]!=-1){
				if(t[i+1]!=-1){
					t[i+1]=(t[i]+t[i+1])%mod;
				}
				if(t[i+2]!=-1){
					t[i+2]=(t[i]+t[i+2])%mod;
				}
				if(t[i+1]==-1&&t[i+2]==-1){
					flg=false;
					break;
				}
			} t[i]!=-1 t[i] t i -1 1 {
				if(t[i+1]!=-1){
					t[i+1]=(t[i]+t[i+1])%mod;
				}
				if(t[i+2]!=-1){
					t[i+2]=(t[i]+t[i+2])%mod;
				}
				if(t[i+1]==-1&&t[i+2]==-1){
					flg=false;
					break;
				}
			} if(t[i+1]!=-1){
					t[i+1]=(t[i]+t[i+1])%mod;
				} t[i+1]!=-1 t[i+1] t i+1 i 1 -1 1 {
					t[i+1]=(t[i]+t[i+1])%mod;
				} t[i+1]=(t[i]+t[i+1])%mod t[i+1] t i+1 i 1 (t[i]+t[i+1])%mod (t[i]+t[i+1]) t[i] t i t[i+1] t i+1 i 1 mod if(t[i+2]!=-1){
					t[i+2]=(t[i]+t[i+2])%mod;
				} t[i+2]!=-1 t[i+2] t i+2 i 2 -1 1 {
					t[i+2]=(t[i]+t[i+2])%mod;
				} t[i+2]=(t[i]+t[i+2])%mod t[i+2] t i+2 i 2 (t[i]+t[i+2])%mod (t[i]+t[i+2]) t[i] t i t[i+2] t i+2 i 2 mod if(t[i+1]==-1&&t[i+2]==-1){
					flg=false;
					break;
				} t[i+1]==-1&&t[i+2]==-1 t[i+1]==-1 t[i+1] t i+1 i 1 -1 1 t[i+2]==-1 t[i+2] t i+2 i 2 -1 1 {
					flg=false;
					break;
				} flg=false flg false break; if(flg){
			if(t[n-1]!=-1){
				ans = (t[n]+t[n-1])%mod;
				
			} else {
				ans = t[n]%mod;
			}
		} flg {
			if(t[n-1]!=-1){
				ans = (t[n]+t[n-1])%mod;
				
			} else {
				ans = t[n]%mod;
			}
		} if(t[n-1]!=-1){
				ans = (t[n]+t[n-1])%mod;
				
			} else {
				ans = t[n]%mod;
			} t[n-1]!=-1 t[n-1] t n-1 n 1 -1 1 {
				ans = (t[n]+t[n-1])%mod;
				
			} ans = (t[n]+t[n-1])%mod ans (t[n]+t[n-1])%mod (t[n]+t[n-1]) t[n] t n t[n-1] t n-1 n 1 mod {
				ans = t[n]%mod;
			} ans = t[n]%mod ans t[n]%mod t[n] t n mod System.out.println(ans) System.out.println System.out System System.out ans 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[] t = new int[n+1];
		boolean flg = true;
		int ans = 0;
		int mod = 1000000007;

		for(int i=0;i<m;i++)t[sc.nextInt()]=-1;
		t[0]=1;

		for(int i=0;i<n-1;i++){
			if(t[i]!=-1){
				if(t[i+1]!=-1){
					t[i+1]=(t[i]+t[i+1])%mod;
				}
				if(t[i+2]!=-1){
					t[i+2]=(t[i]+t[i+2])%mod;
				}
				if(t[i+1]==-1&&t[i+2]==-1){
					flg=false;
					break;
				}
			}
		}

		if(flg){
			if(t[n-1]!=-1){
				ans = (t[n]+t[n-1])%mod;
				
			} else {
				ans = t[n]%mod;
			}
		}

		// 出力
		System.out.println(ans);
	}
} public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);

		// 整数の入力
		int n = sc.nextInt();
		int m = sc.nextInt();

		int[] t = new int[n+1];
		boolean flg = true;
		int ans = 0;
		int mod = 1000000007;

		for(int i=0;i<m;i++)t[sc.nextInt()]=-1;
		t[0]=1;

		for(int i=0;i<n-1;i++){
			if(t[i]!=-1){
				if(t[i+1]!=-1){
					t[i+1]=(t[i]+t[i+1])%mod;
				}
				if(t[i+2]!=-1){
					t[i+2]=(t[i]+t[i+2])%mod;
				}
				if(t[i+1]==-1&&t[i+2]==-1){
					flg=false;
					break;
				}
			}
		}

		if(flg){
			if(t[n-1]!=-1){
				ans = (t[n]+t[n-1])%mod;
				
			} else {
				ans = t[n]%mod;
			}
		}

		// 出力
		System.out.println(ans);
	}
} 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[] t = new int[n+1];
		boolean flg = true;
		int ans = 0;
		int mod = 1000000007;

		for(int i=0;i<m;i++)t[sc.nextInt()]=-1;
		t[0]=1;

		for(int i=0;i<n-1;i++){
			if(t[i]!=-1){
				if(t[i+1]!=-1){
					t[i+1]=(t[i]+t[i+1])%mod;
				}
				if(t[i+2]!=-1){
					t[i+2]=(t[i]+t[i+2])%mod;
				}
				if(t[i+1]==-1&&t[i+2]==-1){
					flg=false;
					break;
				}
			}
		}

		if(flg){
			if(t[n-1]!=-1){
				ans = (t[n]+t[n-1])%mod;
				
			} else {
				ans = t[n]%mod;
			}
		}

		// 出力
		System.out.println(ans);
	}
}