import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {
      	int CONST_MOD = (int) (Math.pow(10, 9) + 7);
        Scanner sc = new Scanner(System.in);
        
        int n = sc.nextInt();
        int m = sc.nextInt();
        ArrayList<Integer> dp = new ArrayList<Integer>();
      
      	for(int i=0; i<n+1; i++)
        {
          dp.add(1);
        }
        
        for(int i = 0; i < m; i++)
        {
            dp.set(sc.nextInt(), 0);
        }
        
        for(int i = 2; i < n+1; i++)
        {
            if( dp.get(i) != 0 )
            { 
            	dp.set(i, (dp.get(i-1) + dp.get(i-2))%CONST_MOD);
            }
        }
        
        System.out.println(dp.get(n));
    }
} import java.util.*; util.* java public class Main {
    public static void main(String[] args) throws Exception {
      	int CONST_MOD = (int) (Math.pow(10, 9) + 7);
        Scanner sc = new Scanner(System.in);
        
        int n = sc.nextInt();
        int m = sc.nextInt();
        ArrayList<Integer> dp = new ArrayList<Integer>();
      
      	for(int i=0; i<n+1; i++)
        {
          dp.add(1);
        }
        
        for(int i = 0; i < m; i++)
        {
            dp.set(sc.nextInt(), 0);
        }
        
        for(int i = 2; i < n+1; i++)
        {
            if( dp.get(i) != 0 )
            { 
            	dp.set(i, (dp.get(i-1) + dp.get(i-2))%CONST_MOD);
            }
        }
        
        System.out.println(dp.get(n));
    }
} Main public static void main(String[] args) throws Exception {
      	int CONST_MOD = (int) (Math.pow(10, 9) + 7);
        Scanner sc = new Scanner(System.in);
        
        int n = sc.nextInt();
        int m = sc.nextInt();
        ArrayList<Integer> dp = new ArrayList<Integer>();
      
      	for(int i=0; i<n+1; i++)
        {
          dp.add(1);
        }
        
        for(int i = 0; i < m; i++)
        {
            dp.set(sc.nextInt(), 0);
        }
        
        for(int i = 2; i < n+1; i++)
        {
            if( dp.get(i) != 0 )
            { 
            	dp.set(i, (dp.get(i-1) + dp.get(i-2))%CONST_MOD);
            }
        }
        
        System.out.println(dp.get(n));
    } main {
      	int CONST_MOD = (int) (Math.pow(10, 9) + 7);
        Scanner sc = new Scanner(System.in);
        
        int n = sc.nextInt();
        int m = sc.nextInt();
        ArrayList<Integer> dp = new ArrayList<Integer>();
      
      	for(int i=0; i<n+1; i++)
        {
          dp.add(1);
        }
        
        for(int i = 0; i < m; i++)
        {
            dp.set(sc.nextInt(), 0);
        }
        
        for(int i = 2; i < n+1; i++)
        {
            if( dp.get(i) != 0 )
            { 
            	dp.set(i, (dp.get(i-1) + dp.get(i-2))%CONST_MOD);
            }
        }
        
        System.out.println(dp.get(n));
    } int CONST_MOD = (int) (Math.pow(10, 9) + 7); CONST_MOD (int) (Math.pow(10, 9) + 7) Math.pow(10, 9) Math.pow Math 10 9 7 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 ArrayList<Integer> dp = new ArrayList<Integer>(); dp new ArrayList<Integer>() for(int i=0; i<n+1; i++)
        {
          dp.add(1);
        } int i=0; int i=0; i 0 i<n+1 i n+1 n 1 i++ i++ i {
          dp.add(1);
        } {
          dp.add(1);
        } dp.add(1) dp.add dp 1 for(int i = 0; i < m; i++)
        {
            dp.set(sc.nextInt(), 0);
        } int i = 0; int i = 0; i 0 i < m i m i++ i++ i {
            dp.set(sc.nextInt(), 0);
        } {
            dp.set(sc.nextInt(), 0);
        } dp.set(sc.nextInt(), 0) dp.set dp sc.nextInt() sc.nextInt sc 0 for(int i = 2; i < n+1; i++)
        {
            if( dp.get(i) != 0 )
            { 
            	dp.set(i, (dp.get(i-1) + dp.get(i-2))%CONST_MOD);
            }
        } int i = 2; int i = 2; i 2 i < n+1 i n+1 n 1 i++ i++ i {
            if( dp.get(i) != 0 )
            { 
            	dp.set(i, (dp.get(i-1) + dp.get(i-2))%CONST_MOD);
            }
        } {
            if( dp.get(i) != 0 )
            { 
            	dp.set(i, (dp.get(i-1) + dp.get(i-2))%CONST_MOD);
            }
        } if( dp.get(i) != 0 )
            { 
            	dp.set(i, (dp.get(i-1) + dp.get(i-2))%CONST_MOD);
            } dp.get(i) != 0 dp.get(i) dp.get dp i 0 { 
            	dp.set(i, (dp.get(i-1) + dp.get(i-2))%CONST_MOD);
            } dp.set(i, (dp.get(i-1) + dp.get(i-2))%CONST_MOD) dp.set dp i (dp.get(i-1) + dp.get(i-2))%CONST_MOD (dp.get(i-1) + dp.get(i-2)) dp.get(i-1) dp.get dp i-1 i 1 dp.get(i-2) dp.get dp i-2 i 2 CONST_MOD System.out.println(dp.get(n)) System.out.println System.out System System.out dp.get(n) dp.get dp n String[] args args public class Main {
    public static void main(String[] args) throws Exception {
      	int CONST_MOD = (int) (Math.pow(10, 9) + 7);
        Scanner sc = new Scanner(System.in);
        
        int n = sc.nextInt();
        int m = sc.nextInt();
        ArrayList<Integer> dp = new ArrayList<Integer>();
      
      	for(int i=0; i<n+1; i++)
        {
          dp.add(1);
        }
        
        for(int i = 0; i < m; i++)
        {
            dp.set(sc.nextInt(), 0);
        }
        
        for(int i = 2; i < n+1; i++)
        {
            if( dp.get(i) != 0 )
            { 
            	dp.set(i, (dp.get(i-1) + dp.get(i-2))%CONST_MOD);
            }
        }
        
        System.out.println(dp.get(n));
    }
} public class Main {
    public static void main(String[] args) throws Exception {
      	int CONST_MOD = (int) (Math.pow(10, 9) + 7);
        Scanner sc = new Scanner(System.in);
        
        int n = sc.nextInt();
        int m = sc.nextInt();
        ArrayList<Integer> dp = new ArrayList<Integer>();
      
      	for(int i=0; i<n+1; i++)
        {
          dp.add(1);
        }
        
        for(int i = 0; i < m; i++)
        {
            dp.set(sc.nextInt(), 0);
        }
        
        for(int i = 2; i < n+1; i++)
        {
            if( dp.get(i) != 0 )
            { 
            	dp.set(i, (dp.get(i-1) + dp.get(i-2))%CONST_MOD);
            }
        }
        
        System.out.println(dp.get(n));
    }
} Main
import java.util.*;

public class Main {
    public static void main(String[] args) throws Exception {
      	int CONST_MOD = (int) (Math.pow(10, 9) + 7);
        Scanner sc = new Scanner(System.in);
        
        int n = sc.nextInt();
        int m = sc.nextInt();
        ArrayList<Integer> dp = new ArrayList<Integer>();
      
      	for(int i=0; i<n+1; i++)
        {
          dp.add(1);
        }
        
        for(int i = 0; i < m; i++)
        {
            dp.set(sc.nextInt(), 0);
        }
        
        for(int i = 2; i < n+1; i++)
        {
            if( dp.get(i) != 0 )
            { 
            	dp.set(i, (dp.get(i-1) + dp.get(i-2))%CONST_MOD);
            }
        }
        
        System.out.println(dp.get(n));
    }
}