sub hiero { my (%nf, %df); $nf{$_}++ for egypt(shift); $df{$_}++ for egypt(shift); do {($df{$_}, $nf{$_}) = ($df{$_} - $nf{$_}, $nf{$_} - $df{$_}) if $df{$_} } for keys %nf; return (eval join('*', 1, (map {($_) x $nf{$_}} keys %nf)), eval join('*', 1, (map {($_) x $df{$_}} keys %df))); }