sub _{($:,$,,$;)=@_;$;=$;?$;:1;($:>$,)?_($:-1,$,,$;*$:/($:-$,)):$;;} sub __{($:,$;)=@_;$;++;for($,=1;$:>$;;$:--){$,*=$:/($:-$;)}$,;};