sub gcd { my ($n, $m) = @_; $m ? gcd($m, $n%$m) : $n; }