from collections import * from itertools import * from functools import * from heapq import * import sys,math input = sys.stdin.readline N,K = map(int,input().split()) A = list(map(int,input().split())) mod = 10**9 + 9 B = [0]*K S = 0 I = pow(2,K-1,mod) for i in range(K): S = (S + N*(1<<i)*I)%mod b1 = 0 for a in A: if (a>>i)&1: b1 += 1 B[i] = b1 SS = 0 for i in range(K): SS = (SS + I*(1<<(2*i))*(B[i]**2))%mod SS = (SS + I*(1<<(2*i))*((N-B[i])**2))%mod # print(SS) for i in range(K-1): bi = B[i] Ii = (1<<i) for j in range(i+1,K): bj = B[j] Ij = (1<<j) SS = (SS + I*(Ii*Ij*N*N))%mod # SS = (SS + I*(Ii*Ij*(N-bi)*(N-bj)))%mod print(S) print((SS*(1<<K) - S**2)%mod)