sub b{$M=$m=@_*@_;for(keys %t){$r=c($_);($m,$n)=($r,$_)if($r<$m)}$n}sub c{%b=($_[0]=>$b=$sum=1);while(@_){$b++;@_=grep{!$b{$_}}map{@{$t{$_}}}@_;@b{@_}=($b)x@_;$sum+=$b*@_;return$M if$sum>$m}$sum}