#include <cstdio>
#include <cstring>
bool horizontal[11][3]={{1,0,1},{0,0,0},{1,1,1},{1,1,1},{0,1,0},{1,1,1},{1,1,1},{1,0,0},{1,1,1},{1,1,1},{1,0,1}};
bool vertical_first[10][2]={ {1,1},{0,0},{0,1},{0,0},{1,0},{1,0},{1,1},{0,0},{1,1},{1,0}};
bool vertical_second[10][2]={{1,1},{1,1},{1,0},{1,1},{1,1},{0,1},{0,1},{1,1},{1,1},{1,1}};
int n;
int q;
void Draw_line(int s,char *output)
{
output[q++]=' ';
for(int i=0;i<s;i++)
output[q++]='-';
output[q++]=' ';
output[q++]=' ';
}
void Draw_empty_line(int s,char *output)
{
for(int i=0;i<=s+2;i++)
output[q++]=' ';
}
void Print_lines(int x,int s,char *number,char *output)
{
for(int i=0;i<n;i++)
if(horizontal[number[i]-'0'][x])
Draw_line(s,output);
else
Draw_empty_line(s,output);
q--;
output[q++]='\n';
}
void Draw_column(bool first,int s,char *output)
{
output[q++]='|';
if(first)
for(int i=0;i<s;i++)
output[q++]=' ';
else
output[q++]=' ';
}
void Draw_empty_column(bool first,int s,char *output)
{
output[q++]=' ';
if(first)
for(int i=0;i<s;i++)
output[q++]=' ';
else
output[q++]=' ';
}
void Print_columns(int x,int s,char *number,char *output)
{
for(int sq=0;sq<s;sq++)
{
for(int i=0;i<n;i++)
{
if(vertical_first[number[i]-'0'][x])
Draw_column(true,s,output);
else
Draw_empty_column(true,s,output);
if(vertical_second[number[i]-'0'][x])
Draw_column(false,s,output);
else
Draw_empty_column(false,s,output);
}
q--;
output[q++]='\n';
}
}
void Draw(int s,char *number,char *output)
{
Print_lines(0,s,number,output);
//fprintf(stderr,"%s\n\n",output);
Print_columns(0,s,number,output);
//fprintf(stderr,"%s\n\n",output);
Print_lines(1,s,number,output);
//fprintf(stderr,"%s\n\n",output);
Print_columns(1,s,number,output);
//fprintf(stderr,"%s\n\n",output);
Print_lines(2,s,number,output);
}
char buffer[8000];
int main()
{
//FILE *in=stdin,*out=stdout;
FILE *in=fopen("a.in","r"),*out=fopen("a.out","w");
int s;
char number[20];
fscanf(in,"%d %s ",&s,number);
while(s!=0)
{
n=strlen(number);
Draw(s,number,buffer);
fputs(buffer,out);
fscanf(in,"%d %s ",&s,number);
//if(s!=0)
fprintf(out,"\n");
q=0;
}
fclose(in);
fclose(out);
return 0;
}