#include <iostream>
#include <cmath>
using namespace std;
int main() {
int n;
while (cin >> n) {
int i=0,j=0,k=0;
int x=3*pow(2,(n-1));
int h=x+n,w=2*x-1; //图形的高度与宽度。
int c=x-1;//中心列的下标;
char p[h][w];//定义画布;
for(i=0;i<h;i++)//初始化画布;
{
for(j=0;j<w;j++) p[i][j]=' ';
}
for(i=x;i<h;i++) p[i][c]='*';//绘制树干
for(i=0;i<3;i++)
{
p[i][c-i]='*';
p[i][c+i]='*';
}
p[2][c]='*';//上面的部分绘制初始三角形在画布的最上方中间。
for(i=1;i<n;i++)//开始递归
{
int t=3*pow(2,i-1);//上半部分的行数;
for(j=0;j<t;j++)//开始绘制下半部分
{
for(k=c-j;k<=c+j;k++)
{
p[t+j][k-t]=p[j][k];//复制到左下
p[t+j][k+t]=p[j][k];//复制到右下
}
}
}
for(i=0;i<h;i++)//打印图形
{
for(j=0;j<w;j++) cout<<p[i][j];
cout<<endl;
}
}
return 0;
}