uses math;
var platno:array[1..51,1..51]of char;
    i,j,hod,min:integer;
    uh,um:double;
    s:string;

function tg(uhol:double):double;
begin
 tg:=sin(uhol)/cos(uhol);
end;

procedure ciara (vel:integer;uhol:double);
var i,x,y,minx,miny,min2x,min2y,pom:integer;
    xk,yk:shortint;
    kde:byte;
    a:double;
begin
 kde:=trunc(uhol/90);
 if kde<2 then yk:=1 else yk:=-1;
 if (kde>0) and (kde<3) then xk:=-1 else xk:=1;
 uhol:=uhol-kde*90;
 if (kde=1) or (kde=3) then uhol:=90-uhol;
 if (uhol<=45) then
  begin
   minx:=26;miny:=26;
   a:=tg(uhol/180*pi);
   i:=1;
   while (sqr(i)+sqr(round(a*i))<=sqr(vel)) do
    begin
     x:=26+i*xk;
     y:=26+round(a*i)*yk;
     platno[x,y]:='o';
     if i<>1 then
      begin
        pom:=y-min2y;
	if abs(pom)<>1 then
         begin
          if pom=0 then platno[minx,miny]:='-'
	  else if (pom=2) xor (xk=1) then platno[minx,miny]:='/'
          else platno[minx,miny]:='\';
         end;
      end;
     min2x:=minx;min2y:=miny;minx:=x;miny:=y;
     inc(i);
    end;
   x:=26+i*xk;
   y:=26+round(a*i)*yk;
   if i<>1 then
    begin
     pom:=y-min2y;
     if abs(pom)<>1 then
      begin
       if pom=0 then platno[minx,miny]:='-'
       else if (pom=2) xor (xk=1) then platno[minx,miny]:='/'
       else platno[minx,miny]:='\';
      end;
    end;
  end
 else
  begin
   minx:=26;miny:=26;
   a:=tg((90-uhol)/180*pi);
   i:=1;
   while (sqr(i)+sqr(round(a*i))<=sqr(vel)) do
    begin
     y:=26+i*yk;
     x:=26+round(a*i)*xk;
     platno[x,y]:='o';
     if i<>1 then
      begin
        pom:=x-min2x;
	if abs(pom)<>1 then
         begin
          if pom=0 then platno[minx,miny]:='|'
	  else if (pom=2) xor (yk=1) then platno[minx,miny]:='/'
          else platno[minx,miny]:='\';
         end;
      end;
     min2x:=minx;min2y:=miny;minx:=x;miny:=y;
     inc(i);
    end;
     y:=26+i*yk;
     x:=26+round(a*i)*xk;
     if i<>1 then
      begin
        pom:=x-min2x;
	if abs(pom)<>1 then
         begin
          if pom=0 then platno[minx,miny]:='|'
	  else if (pom=2) xor (yk=1) then platno[minx,miny]:='/'
          else platno[minx,miny]:='\';
         end;
      end;
  end;
end;

begin
 readln(s);
 while s<>'END' do
 begin
  for i:=1 to 51 do
   begin
    if i mod 10=1 then
     begin
      platno[i,1]:='@';platno[i,51]:='@';platno[1,i]:='@';platno[51,i]:='@';
     end
    else
     begin
      platno[i,1]:='X';platno[i,51]:='X';platno[1,i]:='X';platno[51,i]:='X';
     end;
    if (i<>1)and(i<>51) then for j:=2 to 50 do platno[i,j]:=' ';
   end;
  platno[3,26]:='9';
  platno[49,26]:='3';
  platno[25,3]:='1';
  platno[27,3]:='2';
  platno[26,49]:='6';
  platno[26,26]:='*';
  val(copy(s,1,pos(':',s)-1),hod,i);
  val(copy(s,pos(':',s)+1,length(s)-(pos(':',s))),min,i);
  uh:=360/12*hod+360/12/60*min-90;
  if uh<0 then uh:=uh+360;
  um:=360/60*min-90;
  if um<0 then um:=um+360;
  ciara(15,uh);
  ciara(21,um);
  for i:=1 to 51 do
   begin
    for j:=1 to 51 do write(platno[j,i]);
    writeln;
   end;
  writeln;
  readln(s);
 end;
end.
