t=%w{x=[];if@!STDIN.tty?;STDINJ_line{|l|x.push(l)}Bif@x.size>0;b={};q=[d=0, 0];p=[[0,0,0,0]];while@pL>0;i,j,u,v=p.shift;if@i>=0&&i=0&&x[i][j]=="@"& &!b[[i,j]];b[[i,j]]=[u,v];n=(i<<16)+j;if@d 0?2:-2;while(g<1|| F(5)>0 )&&(p=j+ 8*g)1& &(0..2).all?{|l|!$ q[[q+l*2 ,p]]&&!$q[ [q+l *2,p+8]]};g+=1;Bif@g>0;gH{| l|3H{|u|[0,8]J{|v|$q[[i+l*f+ u*2,j+l*8+ v]]= 1;}}};h=F(2)*2-1;e=h*f<0;u=v=w=x= nil;gH{|l|y(d=i+l*f+2- 2*h,b=j+l* 8,p= d,q=b+8);y(m=d+(e@?-2*f:f),n=b+(e@?8:0) ,r=m+f,s=n);if@u ;y(u,v,d,b );y( w,x,m,n)Bu=p;v=q;w=r;x=s};y(u=e@?i+2:w,v=e@?j :x+8,u-f,v )BB};w =[]; zH{|l|ZH{|i|y(q=l*2,p=i*16-l%2*8,q,p+($q[[q,p]]||$q [[q, p+8]]?0:8) )};(1..Z*2-2)J{|i|w+=l>0?[[q=l*2,p=i*8,q-2,p]]:[]}};w=w.s huffle;2H{|l|wJ{ |p,d,q,b|if(l<1||s(0,0)!=s(z*2-2,Z*16-8))&&!$q[[p,d]]&&!$q[[q,b]];y(p,d,q,b)B}; $q={}};y(-2,0,0,0);y(p=z*2,q=Z*16-8,p-2,q);B$oJ{|l|puts@l}}*"";7.times{|l|t=t .gsub((64+2*l).chr,([32.chr]+%w{end; D rand .times .each .size})[l])};eval t