Program dd;

var s:string[5];
    poms:char;
    i:byte;

function VRAT(par1:char; par2:byte):string[5];
begin

case par2 of
1:  begin
    if (par1='1') then VRAT:='    +'
	else if (par1='4') then VRAT:='+   +'
	    else VRAT:='+---+';
    end;
    
2: begin
   if (par1 in ['1','2','3','7']) then VRAT:='    |'
	else if (par1 in ['5','6']) then VRAT:='|    '
	    else VRAT:='|   |';

    end;
    
3: begin
   if (par1 in ['1','2','3','7']) then VRAT:='    |'
	else if (par1 in ['5','6']) then VRAT:='|    '
	    else VRAT:='|   |';

    end;

4: begin
   if (par1 in ['1','7']) then VRAT:='    +'
    else if (par1='0') then VRAT:='+   +'
	else VRAT:='+---+';
    end;

5: begin
    if (par1='2') then VRAT:='|    '
	else if (par1 in ['0','8','6']) then VRAT:='|   |'
	    else VRAT:='    |';
end;

6: begin
    if (par1='2') then VRAT:='|    '
	else if (par1 in ['0','8','6']) then VRAT:='|   |'
	    else VRAT:='    |';
end;
    
7: begin
    if (par1 in ['1','4','7']) then VRAT:='    +'
	else VRAT:='+---+';

end;


end;



end;

begin
readln(s);

while s<>'end' do
begin


poms:=' ';    
    for i:=1 to 7 do
	begin
	if ((i=3) or (i=5)) then poms:='o';
	writeln(VRAT(s[1],i),'  ',VRAT(s[2],i),'  ',poms,'  ',VRAT(s[4],i),'  ',VRAT(s[5],i));
	poms:=' ';

	end;

writeln;
writeln;
    

readln(s);
end;
writeln('end');


end.