import java.util.*
fun main(args:Array<String>) {
    val (N,M) = readLine()!!.split(" ").map(String::toInt)
    var step_list = Array(N) {0}
    (1..M).forEach {
        val i = readLine()!!.toInt()
        step_list[i - 1] = -1
    }
    step_list[0] = if(step_list[0] < 0) {step_list[0]} else {1}
    step_list[1] = if(step_list[1] < 0) {step_list[1]} else {if(step_list[0] <0) {1} else {2}}

    for (i in 2.until(N)) {
        if(step_list[i] >= 0) {
            step_list[i] = if(step_list[i-2] < 0 && step_list[i - 1] < 0) {
                -1 
            } else {
                arrayOf(step_list[i - 2], step_list[i - 1]).filter {it >= 0}.fold(0) {sum,ele -> (sum % 1000000007 + ele % 1000000007) % 1000000007}
            } 
        }

    }
    arrayOf(0,step_list[N-1]).max()!!.run(::println)
}