#include<bits/stdc++.h>
using namespace std;
struct data{
int z,x;
}d[100];
bool qiuqiu(data q,data w){
return q.z<w.z||q.z==w.z&&q.x<w.x;
}
int a,s;
bool f[20][5001];
char g[5000][5000];
int p[1000001][2],t,w,e;
void qoiqoi(int l,int m,int n,int b){
if(l==a){g[3<<(a-2)][m]='o';return;}
if(l==a-1){
g[(3<<(a-2))-2][(m+n)/2]='o';
if(f[l+1][b*2-1]==true){
g[(3<<(a-2))-1][(m+n)/2-1]='/';
qoiqoi(l+1,m,m,b*2-1);
}
if(f[l+1][b*2]==true){
g[(3<<(a-2))-1][(m+n)/2+1]='\\';
qoiqoi(l+1,n,n,b*2);
}
return;
}
g[(3<<(a-2))-(3<<(a-l-1))+1][(m+n)/2]='o';
if(f[l+1][b*2-1]==true){
for(int i=1;i<=((m+n)/2-1-m)/2;i++)g[(3<<(a-2))-(3<<(a-l-1))+1+i][(m+n)/2-i]='/';
qoiqoi(l+1,m,(m+n)/2-1,b*2-1);
}
if(f[l+1][b*2]==true){
for(int i=1;i<=(n-(m+n)/2-1)/2;i++)g[(3<<(a-2))-(3<<(a-l-1))+1+i][(m+n)/2+i]='\\';
qoiqoi(l+1,(m+n)/2+1,n,b*2);
}
return;
}
int main(){
cin>>a>>s;
for(int i=1;i<=s;i++)cin>>d[i].z>>d[i].x;
sort(d+1,d+s+1,qiuqiu);
f[1][1]=true;p[1][0]=1;p[1][1]=1;
t=w=e=1;
while(t<=w){
if(e<=s&&p[t][0]==d[e].z&&p[t][1]==d[e].x){
f[p[t][0]][p[t][1]]=false;
e++;
}
else if(p[t][0]<=a){
f[p[t][0]+1][p[t][1]*2-1]=true;
f[p[t][0]+1][p[t][1]*2]=true;
p[++w][0]=p[t][0]+1;p[w][1]=p[t][1]*2-1;
p[++w][0]=p[t][0]+1;p[w][1]=p[t][1]*2;
}
t++;
}
if(f[1][1]==true)qoiqoi(1,1,(3<<(a-1))-1,1);
for(int i=1;i<=(3<<(a-2));i++){
for(int j=1;j<=(3<<(a-1))-1;j++){
if(g[i][j]==g[0][0])putchar(' ');
else putchar(g[i][j]);
}
putchar('\n');
}
return 0;
}