n, m = gets.not_nil!.split.map(&.to_i64)
aa = [] of Int64
m.times {
    aa << gets.not_nil!.to_i64
}
aa << n + 1

def fib(x)
    x1 = x2 = 1
    x.times { |i|
        x1, x2 = x2, x1 + x2
    }
    x1
end

res = 1
la = -1
aa.each { |a|
    da = a - la - 1
    if da == 0
        puts 0
        exit 0
    end
    puts da, fib(da - 1)
    res *= fib(da - 1)
    la = a
}

puts res % 1000000007

