@u='0335443554366887798866555766'=~/./g;sub n{@p=(thir,four,fif,six,seven,eigh,nine);@n=('',one,two,three,four,five,@p[3..6],ten,eleven,twelve,map($_.teen,@p),twenty,map$_.ty,@p);$n[22]=~s/u//;$n[8].=t;shift()?$_<20?$n[$_]:$n[$_/10+18].$n[$_%10]:zero}$_=pop;print$z=n($_)," is ",$_=$_-4?length$z:magic,".\n"while/\d/