n, k = map(int, input().split()) N = 1000 mod = 10**9+7 fac = [1]*(N+1) finv = [1]*(N+1) for i in range(N): fac[i+1] = fac[i] * (i+1) % mod if k == 0: ans = 1 print(fac[n]%mod) exit() A = list(map(int, input().split())) A.sort() if k == n+1: if A[0] != 0: print(0) exit() if A[-1] != pow(2, n)-1: print(0) exit() ans = 1 b = 0 for a in A: cnt = 0 for i in range(65): if (a>>i)&1: if (b>>i)&1: continue else: cnt += 1 else: if (b>>i)&1: print(0) exit() else: continue ans *= fac[cnt] ans %= mod b |= a print(ans)