#include<bits/stdc++.h>
using namespace std;
int n;
char ans[32769][32769]={};
int jw[17]={0,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768};
void dfs(int x)
{
if (x==n)
{
for (int i=1;i<=jw[x];i++)
{
for (int j=x;j>=1;j--)
cout<<ans[i][j];
cout<<endl;
}
return ;
}
for (int i=jw[x]+1;i<=jw[x+1];i++)
for (int j=1;j<=x;j++)
{
ans[i][j]=ans[2*jw[x]-i+1][j];
}
for (int i=1;i<=jw[x+1];i++)
{
if (i<=jw[x+1]/2)
ans[i][x+1]='O';
else
ans[i][x+1]='X';
}
dfs(x+1);
}
int main()
{
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
cin>>n;
ans[1][1]='O';
ans[2][1]='X';
dfs(1);
for (int i=1;i<=n;i++)
cout<<'O';
return 0;
}