n, m = gets.split.map(&:to_i)
brokens = []
m.times { brokens << gets.to_i }
ans = 0
# 連続してたら0
if brokens.count { |n| brokens.include?(n+1) } >= 1
ans = 0
# 空だったらそのまま出力
elsif brokens.empty?
  ans = 2**(n/2)
else
  ans = 2**((n-m)/2)
end

puts ans%1000000007
