sub p { return (map { $a ? ($a *= $_) : ($a = 1) } (($_[0] - $_[1] + 1) .. $_[0]))[-1]; }