my$in="$ARGV[0]\0"; sub n{substr($_[0],1).substr($_[0],0,1)} my($r, @r)=(n($in),$in); while(${r}ne$r[0]){push@r,$r;$r = n($r);} @r=sort@r;my$l=join'',map{substr($_,-1,1)}@r;