($n,$k)=glob<>; $r=1; #for(sort{$a<=>$b}<>=~/\d+/g){ for(sort map{sprintf"%030d",$_}<>=~/\d+/g){ die if $db++==0 && $b!=0; $a="$_"|0; if($b&~$a){ #die; 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 }