package Q;sub n{my$l=$_[1];my$s;$l=~tr/A-Za-z/N-ZA-Mn-za-m/;$s->{S}=[ $l=~/[a-z]/?'a'..$l:$l=~/[A-Z]/?'A'..$l:$l];$s->{L}=$l;bless$s,$_[0]} sub g{shift(@{$_[0]->{S}})||$_[0]->{L}}1;package main;;$|++;push @p,Q ->n($_)for split//,q!Whfg nabgure Crey unpxre.!;for('A'..'Z'){print$_ ->g()for@p;select$b,$b,$b,.18;print"\r"}