/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.Scanner;
public class Main {
static Scanner sc;
static char [][] roads;
static int distance;
static int speed;
Main (){
roads=new char[11][60];
distance=17;
speed=5;
}
static void FillRoads(int[]b){
for(int i=0;i<11;i++){
for(int j=0;j<60;j++){
if(i==0&&j==0){
roads[i][j]='@';
continue;
}
roads[i][j]='-';
}
}
for(int i=0;i<11;i++){
for(int j=0;j<60;j++){
if(j==b[i]-1){
roads[i][j]='$';
if((b[i]-1+distance+i+1)<60){
roads[i][b[i]-1+distance+i+1]='$';
}
if((b[i]-1-distance-i-1)>=0){
roads[i][b[i]-1-distance-i-1]='$';
}
}
}
}
for(int i=0;i<11;i++){
for(int j=0;j<60;j++){
if(roads[i][j]=='$'){
if(j-speed-i>0){
roads[i][j-speed-i]='+';
}
}
}
}
}
static void print(char roads[][]){
for(int i=0;i<11;i++){
for(int j=0;j<60;j++){
System.
out.
print(roads
[i
][j
]+" "); }
}
}
static void move(char roads[][]){
for(int i=0;i<11;i++){
for(int j=0;j<60;j++){
if(roads[i][j]=='$'){
roads[i][j]='-';
if(j-speed-i>=0){
roads[i][j-speed-i]='$';
}
}
if(roads[i][j]=='+'){
roads[i][j]='-';
}
}
}
for(int i=0;i<11;i++){
for(int j=0;j<60;j++){
if(roads[i][j]=='$'){
if((j+distance+i+1)<60){
roads[i][j+distance+i+1]='$';
}
}
}
}
for(int i=0;i<11;i++){
for(int j=0;j<60;j++){
if(roads[i][j]=='$'){
if(j-speed-i>=0){
roads[i][j-speed-i]='+';
}
}
}
}
}
static void z(int i,char ch[][]){
i+=1;
ch[i-1][0]='-';
ch[i][0]='@';
move(ch);
print(ch);
}
static void q(int i,char ch[][]){
i-=1;
ch[i+1][0]='-';
ch[i][0]='@';
move(ch);
print(ch);
}
static void a(char ch[][]){
move(ch);
print(ch);
}
static void engine1(int i,int k,char roads[][]){
char secondR[][]=new char[11][60];
for(int s=0;s<11;s++){
for(int s1=0;s1<60;s1++){
secondR[s][s1]=roads[s][s1];
}
}
do{
++k;
if(i
+1==11){System.
out.
print(k
+" ");break;} boolean check=false;
boolean check1=false;
// i=0;
if(i==0){
for(int j=0;j<60;j++){
if(secondR[i][j]!='-')
if(secondR
[i
][j
]=='+'&&j
!=0){a
(secondR
);System.
out.
println(k
+" ");engine1
(i,k,secondR
);break;} if(secondR[i][j]=='$'||secondR[i][0]=='+')break;
}
for(int j=0;j<60;j++){
if(secondR[i+1][j]!='-')
if(secondR
[i
+1][j
]=='+'&&j
!=0){z
(i,secondR
);System.
out.
println(k
+" ");i
++;engine1
(i,k,secondR
);break;} if(secondR[i+1][j]=='$'||secondR[i+1][0]=='+'){check1=true;break;}
}
check=true;
}
if(check1)break;
if(check)continue;
// i>0;
if(i!=0){
for(int j=0;j<60;j++){
if(secondR[i][j]!='-'){
if(secondR[i][j]=='+'&&j!=0){a(secondR);engine1(i,k,secondR);break;}
if(secondR[i][j]=='$'||secondR[i][0]=='+')break;
}
}
for(int j=0;j<60;j++){
if(secondR[i+1][j]!='-'){
if(secondR[i+1][j]=='+'&&j!=0){z(i,secondR);i++;engine1(i,k,secondR);break;}
if(secondR[i+1][j]=='$'||secondR[i+1][0]=='+')break;
}
}
for(int j=0;j<60;j++){
if(secondR[i-1][j]!='-'){
if(secondR[i-1][j]=='+'&&j!=0){q(i,secondR);i--;engine1(i,k,secondR);break;}
if(secondR[i-1][j]=='$'||secondR[i-1][0]=='+')break;
}
}
}
}while(true);
}
public static void main
(String[] args
) {
Main FR = new Main();
int a = sc.nextInt();
int[]b = new int[11];
for(int i=0;i<a;i++){
for(int j=0;j<11;j++)
b[j]=sc.nextInt();
FillRoads(b);
print(roads);
engine1(0,0,roads);
}
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgppbXBvcnQgamF2YS51dGlsLlNjYW5uZXI7CnB1YmxpYyBjbGFzcyBNYWluIHsKCSBzdGF0aWMgU2Nhbm5lciBzYzsKCSBzdGF0aWMgY2hhciBbXVtdIHJvYWRzOwoJIHN0YXRpYyBpbnQgZGlzdGFuY2U7Cgkgc3RhdGljIGludCBzcGVlZDsKCSBNYWluICgpewoJCSBzYz1uZXcgU2Nhbm5lcihTeXN0ZW0uaW4pOwoJCSByb2Fkcz1uZXcgY2hhclsxMV1bNjBdOwoJCSBkaXN0YW5jZT0xNzsKCQkgc3BlZWQ9NTsKCSB9CgkJIHN0YXRpYyB2b2lkIEZpbGxSb2FkcyhpbnRbXWIpewoJCQkgCgkJCSBmb3IoaW50IGk9MDtpPDExO2krKyl7CgkJCQkgZm9yKGludCBqPTA7ajw2MDtqKyspewoJCQkJCSBpZihpPT0wJiZqPT0wKXsKCQkJCQkJIHJvYWRzW2ldW2pdPSdAJzsKCQkJCQkJIGNvbnRpbnVlOwoJCQkJCSB9CgkJCQkJcm9hZHNbaV1bal09Jy0nOwoJCQkJfQoJCQl9CgkJCSAKCQkJIGZvcihpbnQgaT0wO2k8MTE7aSsrKXsKCQkJCSBmb3IoaW50IGo9MDtqPDYwO2orKyl7CgkJCQkJIGlmKGo9PWJbaV0tMSl7CgkJCQkJCSByb2Fkc1tpXVtqXT0nJCc7CgkJCQkJCSBpZigoYltpXS0xK2Rpc3RhbmNlK2krMSk8NjApewoJCQkJCQkJIHJvYWRzW2ldW2JbaV0tMStkaXN0YW5jZStpKzFdPSckJzsgCgkJCQkJCSB9CgkJCQkJCSBpZigoYltpXS0xLWRpc3RhbmNlLWktMSk+PTApewoJCQkJCQkJIHJvYWRzW2ldW2JbaV0tMS1kaXN0YW5jZS1pLTFdPSckJzsgCgkJCQkJCSB9IAoJCQkJCSB9CgkJCQl9CgkJCX0KCQkJIAoJCQkgZm9yKGludCBpPTA7aTwxMTtpKyspewoJCQkJIGZvcihpbnQgaj0wO2o8NjA7aisrKXsKCQkJCQkgaWYocm9hZHNbaV1bal09PSckJyl7CgkJCQkJCSBpZihqLXNwZWVkLWk+MCl7CgkJCQkJCQkgcm9hZHNbaV1bai1zcGVlZC1pXT0nKyc7CgkJCQkJCSB9CgkJCQkJCSAKCQkJCQkgfQoJCQkJfQoJCQl9IAkgCgkJfSAKCQkgCgkJIHN0YXRpYyB2b2lkIHByaW50KGNoYXIgcm9hZHNbXVtdKXsKCQkJIGZvcihpbnQgaT0wO2k8MTE7aSsrKXsKCQkJCSBmb3IoaW50IGo9MDtqPDYwO2orKyl7CgkJCQkJIFN5c3RlbS5vdXQucHJpbnQocm9hZHNbaV1bal0rIiAiKTsgCgkJCQkgfQoJCQkJIFN5c3RlbS5vdXQucHJpbnRsbigpOwoJCQkgfSAgCgkJIH0KCQkKCQkgc3RhdGljIHZvaWQgbW92ZShjaGFyIHJvYWRzW11bXSl7CgkJCSBmb3IoaW50IGk9MDtpPDExO2krKyl7CgkJCQkgZm9yKGludCBqPTA7ajw2MDtqKyspewoJCQkJCSBpZihyb2Fkc1tpXVtqXT09JyQnKXsKCQkJCQkJIHJvYWRzW2ldW2pdPSctJzsKCQkJCQkJIGlmKGotc3BlZWQtaT49MCl7CgkJCQkJCQkgcm9hZHNbaV1bai1zcGVlZC1pXT0nJCc7CgkJCQkJCSB9CgkJCQkJIH0KCQkJCQkgaWYocm9hZHNbaV1bal09PScrJyl7CgkJCQkJCSByb2Fkc1tpXVtqXT0nLSc7CgkJCQkJIH0KCQkJCSB9CgkJCX0KCQkJIAoJCQkgZm9yKGludCBpPTA7aTwxMTtpKyspewoJCQkJIGZvcihpbnQgaj0wO2o8NjA7aisrKXsKCQkJCQkgaWYocm9hZHNbaV1bal09PSckJyl7CgkJCQkJCSBpZigoaitkaXN0YW5jZStpKzEpPDYwKXsKCQkJCQkJCSByb2Fkc1tpXVtqK2Rpc3RhbmNlK2krMV09JyQnOyAKCQkJCQkJIH0gCgkJCQkJIH0KCQkJCX0KCQkJfQoJCQkKCQkJIGZvcihpbnQgaT0wO2k8MTE7aSsrKXsKCQkJCSBmb3IoaW50IGo9MDtqPDYwO2orKyl7CgkJCQkJIGlmKHJvYWRzW2ldW2pdPT0nJCcpewoJCQkJCQkgaWYoai1zcGVlZC1pPj0wKXsKCQkJCQkJCSByb2Fkc1tpXVtqLXNwZWVkLWldPScrJzsKCQkJCQkJIH0KCQkJCQkJIAoJCQkJCSB9CgkJCQl9CgkJCX0gCSAgCgkJIH0KCQkgCgkJIHN0YXRpYyB2b2lkIHooaW50IGksY2hhciBjaFtdW10pewoJCQkgaSs9MTsKCQkJIGNoW2ktMV1bMF09Jy0nOwoJCQkgY2hbaV1bMF09J0AnOwoJCQkgbW92ZShjaCk7CgkJCSBwcmludChjaCk7CgkJCSBTeXN0ZW0ub3V0LnByaW50bG4oKTsgCgkJIH0KCQkgCgkJIHN0YXRpYyB2b2lkIHEoaW50IGksY2hhciBjaFtdW10pewoJCQkgaS09MTsKCQkJIGNoW2krMV1bMF09Jy0nOwoJCQkgY2hbaV1bMF09J0AnOwoJCQkgbW92ZShjaCk7CgkJCSBwcmludChjaCk7CgkJCSBTeXN0ZW0ub3V0LnByaW50bG4oKTsgCgkJIH0KCQkgCgkJIHN0YXRpYyB2b2lkIGEoY2hhciBjaFtdW10pewoJCQkgbW92ZShjaCk7CgkJCSBwcmludChjaCk7CgkJCSBTeXN0ZW0ub3V0LnByaW50bG4oKTsgCgkJIH0KCQkgCgkJIHN0YXRpYyB2b2lkIGVuZ2luZTEoaW50IGksaW50IGssY2hhciByb2Fkc1tdW10pewoJCQkgY2hhciBzZWNvbmRSW11bXT1uZXcgY2hhclsxMV1bNjBdOwoJCQkgZm9yKGludCBzPTA7czwxMTtzKyspewoJCQkJIGZvcihpbnQgczE9MDtzMTw2MDtzMSsrKXsKCQkJCQkgc2Vjb25kUltzXVtzMV09cm9hZHNbc11bczFdOwoJCQkJIH0gCgkJCSB9CgkJCSAKCQkJIGRvewoJCQkJICsrazsKCQkJCSBpZihpKzE9PTExKXtTeXN0ZW0ub3V0LnByaW50KGsrIiAiKTticmVhazt9CgkJCQkgYm9vbGVhbiBjaGVjaz1mYWxzZTsKCQkJCSBib29sZWFuIGNoZWNrMT1mYWxzZTsKCQkJCSAvLyBpPTA7CgkJCQkgaWYoaT09MCl7CgkJCQkJIGZvcihpbnQgaj0wO2o8NjA7aisrKXsKCQkJCQkJIGlmKHNlY29uZFJbaV1bal0hPSctJykKCQkJCQkJCSBpZihzZWNvbmRSW2ldW2pdPT0nKycmJmohPTApe2Eoc2Vjb25kUik7U3lzdGVtLm91dC5wcmludGxuKGsrIiAiKTtlbmdpbmUxKGksayxzZWNvbmRSKTticmVhazt9CgkJCQkJCSAJIGlmKHNlY29uZFJbaV1bal09PSckJ3x8c2Vjb25kUltpXVswXT09JysnKWJyZWFrOwoJCQkJCSB9CgkJCQkJIAoJCQkJCSBmb3IoaW50IGo9MDtqPDYwO2orKyl7CgkJCQkJCSBpZihzZWNvbmRSW2krMV1bal0hPSctJykKCQkJCQkJCSBpZihzZWNvbmRSW2krMV1bal09PScrJyYmaiE9MCl7eihpLHNlY29uZFIpO1N5c3RlbS5vdXQucHJpbnRsbihrKyIgIik7aSsrO2VuZ2luZTEoaSxrLHNlY29uZFIpO2JyZWFrO30KCQkJCQkJIAkgaWYoc2Vjb25kUltpKzFdW2pdPT0nJCd8fHNlY29uZFJbaSsxXVswXT09JysnKXtjaGVjazE9dHJ1ZTticmVhazt9CgkJCQkJIH0gCgkJCQkJIGNoZWNrPXRydWU7CgkJCQkgfQoJCQkJIGlmKGNoZWNrMSlicmVhazsKCQkJCSBpZihjaGVjayljb250aW51ZTsKCQkJCSAvLyBpPjA7CgkJCQkgaWYoaSE9MCl7CgkJCQkJIGZvcihpbnQgaj0wO2o8NjA7aisrKXsKCQkJCQkJCWlmKHNlY29uZFJbaV1bal0hPSctJyl7CgkJCQkJCQkJaWYoc2Vjb25kUltpXVtqXT09JysnJiZqIT0wKXthKHNlY29uZFIpO2VuZ2luZTEoaSxrLHNlY29uZFIpO2JyZWFrO30KCQkJCQkJCQlpZihzZWNvbmRSW2ldW2pdPT0nJCd8fHNlY29uZFJbaV1bMF09PScrJylicmVhazsKCQkJCQkJCX0KCQkJCQkgfQoJCQkJCSBmb3IoaW50IGo9MDtqPDYwO2orKyl7CgkJCQkJCQlpZihzZWNvbmRSW2krMV1bal0hPSctJyl7CgkJCQkJCQkJaWYoc2Vjb25kUltpKzFdW2pdPT0nKycmJmohPTApe3ooaSxzZWNvbmRSKTtpKys7ZW5naW5lMShpLGssc2Vjb25kUik7YnJlYWs7fQoJCQkJCQkJCWlmKHNlY29uZFJbaSsxXVtqXT09JyQnfHxzZWNvbmRSW2krMV1bMF09PScrJylicmVhazsKCQkJCQkJCX0KCQkJCQkgfQoJCQkJCSBmb3IoaW50IGo9MDtqPDYwO2orKyl7CgkJCQkJCQlpZihzZWNvbmRSW2ktMV1bal0hPSctJyl7CgkJCQkJCQkJaWYoc2Vjb25kUltpLTFdW2pdPT0nKycmJmohPTApe3EoaSxzZWNvbmRSKTtpLS07ZW5naW5lMShpLGssc2Vjb25kUik7YnJlYWs7fQoJCQkJCQkJCWlmKHNlY29uZFJbaS0xXVtqXT09JyQnfHxzZWNvbmRSW2ktMV1bMF09PScrJylicmVhazsKCQkJCQkJCX0KCQkJCQkgfQoJCQkJCSAKCQkJCSB9IAoJCQkgfXdoaWxlKHRydWUpOwoJCSB9CgkJICAKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKCQkKCQlNYWluIEZSID0gbmV3IE1haW4oKTsKCQlpbnQgYSAgPSBzYy5uZXh0SW50KCk7CgkJaW50W11iID0gbmV3IGludFsxMV07CgkJZm9yKGludCBpPTA7aTxhO2krKyl7CgkJCWZvcihpbnQgaj0wO2o8MTE7aisrKQoJCQkJYltqXT1zYy5uZXh0SW50KCk7CgkJCQoJCQlTeXN0ZW0ub3V0LnByaW50bG4oKTsKCQkJRmlsbFJvYWRzKGIpOwoJCQlwcmludChyb2Fkcyk7CgkJCVN5c3RlbS5vdXQucHJpbnRsbigpOwoJCQllbmdpbmUxKDAsMCxyb2Fkcyk7CgkJCVN5c3RlbS5vdXQucHJpbnRsbigpOwoJCQkKCQl9Cgl9Cn0=