#include<bits/stdc++.h>
using namespace std;
bool flag[1000][2000];
char ans[1000][2000];
int k,p;
int n=0,m=0;
void DFS(int x,int y,int a,int b,int k,int x2,int y2)
{
if(x==n)
{
ans[x][y]='o';
return;
}
if(k==1)
{
ans[x][y]='o';
int Left=x2+1;
int Right=(y2-1)*2+1;
if(flag[Left][Right]==0) DFS(x+1,y-1,a+1,b,2,Left,Right);
Left=x2+1;
Right=y2*2;
if(flag[Left][Right]==0) DFS(x+1,y+1,a+1,b,3,Left,Right);
}
else if(k==2)
{
ans[x][y]='/';
if(a*2==b) DFS(x+1,y-1,1,a,1,x2,y2);
else DFS(x+1,y-1,a+1,b,2,x2,y2);
}
else if(k==3)
{
ans[x][y]=92;
if(a*2==b) DFS(x+1,y+1,1,a,1,x2,y2);
else DFS(x+1,y+1,a+1,b,3,x2,y2);
}
}
void draw(int k)
{
n=3;
for(int i=3;i<=k;i++) n*=2;
m=6*(1<<(k-2))-1;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++) ans[i][j]=' ';
DFS(1,m/2,1,n,1,1,1);
}
int main()
{
scanf("%d %d",&k,&p);
for(int i=1;i<=p;i++)
{
int x,y;
scanf("%d %d",&x,&y);
flag[x][y]=true;
}
if(k==1)
{
n=m=1;
ans[1][1]='o';
}
else draw(k);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++) cout<<ans[i][j];
cout<<endl;
}
return 0;
}