($n,$k)=glob<>;
$r=1;
for(sort{$a<=>$b}glob<>){
++$dbg_i;
	$a=$_|0;
	if($b&~$a){
die;
		print 0;
		exit;
	}
	for(1..c($a)- c($b)){
		$r=($r*$_)%(1e9+7);
	}
	$b=$a;
}
die if $dbg_i!=$k;
die if <>;
die if $b>=1<<$n;

{
	for(1..$n- c($b)){
		$r=($r*$_)%(1e9+7);
	}
}
print $r;

sub c {
	my $v=0;
	my ($n)=@_;
	while($n){
		$v+=$n&1;
		$n>>=1;
	}
	$v
}