sub I{s-^-$"x$_[1]-gem;$/x$_[0].$_.$/} sub D{$~=shift;system($^O=~Win?CLS:"clear"),print, select$Z,$Z,$Z,$~for@_} sub R{$i=0;join$/,map{$j=0;join"",grep!($j++%$_[0]),/./g} grep!($i++%$_[0]),@:} $S=join"",@:=;chop@:; $_.=$"x-(y---c-82)for@:; D.3,@X=(I(20,41,$_="."),I(20,41,$_=O),I(15,31,$_=R 4), I(13,28,$_=R 3),I(10,20,$_=R 2),$S); D.2,(map{$n=$_;join($/,map$_ x$n,R($_)=~/.+/g,"")x$_}2..4) [0..2,1,0]; D.1,$S,join"",map+reverse.$/,@:for$%..5;D.3,reverse@X