def r;gets.split.map &:to_i;end s=->a{c=[1]+[x=0]*M=1024 a.map{c[x^=_1]+=1} t=[0]*M M.times.map{|i|i.times.map{t[i^_1]+=c[i]*c[_1]};t[0]+=c[i]*~-c[i]/2} t} *,k=r x,y=s[r],s[r] p M.times.sum{x[_1]*y[_1^k]}.%1e9+7