import java.io.*;

public class dd{
	public static Number[] num;
	public static void main(String[] args){
		
		num=new Number[11];
		
		for(int i=0; i<11;i++){
			num[i]=new Number(i);
		}
		
		/*for(int j=0;j<11;j++){
			for(int i=0;i<7;i++){
				System.out.println(num[j].getLine(i).toString());
			}
			System.out.println();
		}*/
		
		try{
		
		int[] field = new int[4];
		String line = "";
		BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
		
		while((line=in.readLine())!=null){
			if(line.startsWith("end")){
				System.out.println("end");
				System.exit(0);				
			}
			
			if(line.length() != 5)
				System.out.println("fuck");
			
			field[0] = Integer.parseInt(line.substring(0,1));
			field[1] = Integer.parseInt(line.substring(1,2));
			field[2] = Integer.parseInt(line.substring(3,4));
			field[3] = Integer.parseInt(line.substring(4,5));
			//System.out.println(field[0] + " " + field[1] + " " + field[2] + " " + field[3]);
			show(field);
			
				
			
		}
		
		
		}catch(Exception ex){ex.printStackTrace();}		
		
		
		
		
	}
	
	private static void show(int[] field){
		for(int i=0;i<7;i++){
			System.out.print(num[field[0]].getLine(i));
			System.out.print(" ");
			System.out.print(num[field[1]].getLine(i));
			System.out.print(" ");
			System.out.print(num[10].getLine(i));
			System.out.print(" ");
			System.out.print(num[field[2]].getLine(i));
			System.out.print(" ");
			System.out.print(num[field[3]].getLine(i));			
			System.out.println();
		}
		System.out.println();
		System.out.println();
	}	
}

class Number{	
	
	private char[][] data;
	
	Number(int number){
		
		switch(number){
			case 0: 
				char[][]tdata={	
						{'+','-','-','-','+'},
						{'|',' ',' ',' ', '|'},
						{'|',' ',' ',' ', '|'},
						{'+',' ',' ',' ','+'},
						{'|',' ',' ',' ', '|'},
						{'|',' ',' ',' ', '|'},
						{'+','-','-','-','+'}};
				data=tdata;
				break;
				
			case 1: 
				char[][]adata={	
						{' ',' ',' ',' ','+'},
						{' ',' ',' ',' ', '|'},
						{' ',' ',' ',' ', '|'},
						{' ',' ',' ',' ','+'},
						{' ',' ',' ',' ', '|'},
						{' ',' ',' ',' ', '|'},
						{' ',' ',' ',' ','+'}};
					data=adata;
					break;
			case 2: 	char[][]bdata={	
						{'+','-','-','-','+'},
						{' ',' ',' ',' ', '|'},
						{' ',' ',' ',' ', '|'},
						{'+','-','-','-','+'},
						{'|',' ',' ',' ', ' '},
						{'|',' ',' ',' ', ' '},
						{'+','-','-','-','+'}};						
						data=bdata;
						break;
			case 3: 	char[][]cdata={	
						
						{'+','-','-','-','+'},
						{' ',' ',' ',' ', '|'},
						{' ',' ',' ',' ', '|'},
						{'+','-','-','-','+'},
						{' ',' ',' ',' ', '|'},
						{' ',' ',' ',' ', '|'},
						{'+','-','-','-','+'}};
						data=cdata;
						break;
			case 4: 	char[][]ddata={	
						{'+',' ',' ',' ','+'},
						{'|',' ',' ',' ', '|'},
						{'|',' ',' ',' ', '|'},
						{'+','-','-','-','+'},
						{' ',' ',' ',' ', '|'},
						{' ',' ',' ',' ', '|'},
						{' ',' ',' ',' ','+'}};
						data=ddata;
						break;
			case 5: 	char[][]edata={	
						{'-','-','-','-','+'},
						{'|',' ',' ',' ', ' '},
						{'|',' ',' ',' ', ' '},
						{'+','-','-','-','+'},
						{' ',' ',' ',' ', '|'},
						{' ',' ',' ',' ', '|'},
						{'+','-','-','-','+'}};
						data=edata;
						break;
			case 6: 	char[][]fdata={	
						{'-','-','-','-','+'},
						{'|',' ',' ',' ', ' '},
						{'|',' ',' ',' ', ' '},
						{'+','-','-','-','+'},
						{'|',' ',' ',' ', '|'},
						{'|',' ',' ',' ', '|'},
						{'+','-','-','-','+'}};
						data=fdata;
						break;
						
			case 7: 	char[][]gdata={	
						{'+','-','-','-','+'},
						{' ',' ',' ',' ', '|'},
						{' ',' ',' ',' ', '|'},
						{' ',' ',' ',' ','+'},
						{' ',' ',' ',' ', '|'},
						{' ',' ',' ',' ', '|'},
						{' ',' ',' ',' ','+'}};
						data=gdata;
						break;
			case 8: 	char[][]hdata={	
						{'+','-','-','-','+'},
						{'|',' ',' ',' ', '|'},
						{'|',' ',' ',' ', '|'},
						{'+','-','-','-','+'},
						{'|',' ',' ',' ', '|'},
						{'|',' ',' ',' ', '|'},
						{'+','-','-','-','+'}};
						data=hdata;
						break;
			case 9: 	char[][]jdata={	
						{'+','-','-','-','+'},
						{'|',' ',' ',' ', '|'},
						{'|',' ',' ',' ', '|'},
						{'+','-','-','-','+'},
						{' ',' ',' ',' ', '|'},
						{' ',' ',' ',' ', '|'},
						{' ',' ',' ',' ','+'}};
						data=jdata;
						break;
			case 10: 	char[][]kdata={	
						{' ',' ',' ',' ',' '},
						{' ',' ',' ',' ', ' '},
						{' ',' ','o',' ', ' '},
						{' ',' ',' ',' ',' '},
						{' ',' ','o',' ', ' '},
						{' ',' ',' ',' ', ' '},
						{' ',' ',' ',' ',' '}};
						data=kdata;
						break;
	}
		}
	public char[] getLine(int i){
		return data[i];
	}

}


	