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