N, K = gets.split.map(&:to_i) MOD = 10 ** 9 + 7 if K == 0 puts (1..N).inject(:*) % MOD exit end A = gets.split.map(&:to_i).sort A << 2 ** N - 1 ans = 1 mask = 0 A.each do |a| cnt = 0 N.times do |i| ans = 0 if mask[i] == 1 && a[i] == 0 cnt += 1 if mask[i] == 0 && a[i] == 1 end mask |= a v = [1, cnt].max ans *= (1..v).inject(:*) ans %= MOD end puts ans