#include <stdio.h>
int arr[399][397];
int main()
{
int n, x, y, X, Y, l, dir, finish, i, j;
int dx[4] = {-1, 0, 1, 0}, dy[4] = {0, 1, 0, -1};
scanf("%d", &n);
if(n == 1) // n이 1일 때 예외 처리
{
printf("*");
return 0;
}
X = 4 * n - 1; // X좌표 상한선
Y = 4 * n - 3; // Y좌표 상한선
x = 2 * n; // X좌표 시작값
y = x - 2; // Y좌표 시작값
l = 2; // 변의 길이
dir = 0; // 방향
arr[x][y] = 1;
while(1)
{
for(i=0;i<l;i++)
{
x += dx[dir]; // 이동
y += dy[dir]; // 이동
if(x < 0 || x >= X || y < 0 || y >= Y) // 마지막 변이 길이가 짧아서 배열 범위를 벗어남
{
finish = 1;
break;
}
arr[x][y] = 1;
}
dir++; // 방향 전환
if(finish == 1)
{
break;
}
else if(dir == 4) // 변 길이 증가
{
dir = 0;
l += 2;
}
else if(dir == 2) // 변 길이 증가
{
l += 2;
}
}
for(i=0;i<X;i++)
{
if(i == 1) // 둘째줄 예외 처리
{
printf("*\n");
continue;
}
for(j=0;j<Y;j++) // 한 글자씩 출력
{
if(arr[i][j] == 1)
{
printf("*");
}
else
{
printf(" ");
}
}
if(i < X-1) // 줄 바꿈
{
printf("\n");
}
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgYXJyWzM5OV1bMzk3XTsKCmludCBtYWluKCkKewoJaW50IG4sIHgsIHksIFgsIFksIGwsIGRpciwgZmluaXNoLCBpLCBqOwoJaW50IGR4WzRdID0gey0xLCAwLCAxLCAwfSwgZHlbNF0gPSB7MCwgMSwgMCwgLTF9OwoKICAgIHNjYW5mKCIlZCIsICZuKTsKCglpZihuID09IDEpIC8vIG7snbQgMeydvCDrlYwg7JiI7Jm4IOyymOumrAoJewoJCXByaW50ZigiKiIpOwoKCQlyZXR1cm4gMDsKCX0KCglYID0gNCAqIG4gLSAxOyAvLyBY7KKM7ZGcIOyDge2VnOyEoAoJWSA9IDQgKiBuIC0gMzsgLy8gWeyijO2RnCDsg4HtlZzshKAKCXggPSAyICogbjsgLy8gWOyijO2RnCDsi5zsnpHqsJIKCXkgPSB4IC0gMjsgLy8gWeyijO2RnCDsi5zsnpHqsJIKCWwgPSAyOyAvLyDrs4DsnZgg6ri47J20CglkaXIgPSAwOyAvLyDrsKntlqUKCWFyclt4XVt5XSA9IDE7CgoJd2hpbGUoMSkKCXsKCQlmb3IoaT0wO2k8bDtpKyspCgkJewoJCQl4ICs9IGR4W2Rpcl07IC8vIOydtOuPmQoJCQl5ICs9IGR5W2Rpcl07IC8vIOydtOuPmQoJCQlpZih4IDwgMCB8fCB4ID49IFggfHwgeSA8IDAgfHwgeSA+PSBZKSAvLyDrp4jsp4Drp4kg67OA7J20IOq4uOydtOqwgCDsp6fslYTshJwg67Cw7Je0IOuylOychOulvCDrspfslrTrgqgKCQkJewoJCQkJZmluaXNoID0gMTsKCQkJCWJyZWFrOwoJCQl9CgkJCWFyclt4XVt5XSA9IDE7CgkJfQoJCWRpcisrOyAvLyDrsKntlqUg7KCE7ZmYCgoJCWlmKGZpbmlzaCA9PSAxKQoJCXsKCQkJYnJlYWs7CgkJfQoJCWVsc2UgaWYoZGlyID09IDQpIC8vIOuzgCDquLjsnbQg7Kad6rCACgkJewoJCQlkaXIgPSAwOwoJCQlsICs9IDI7CgkJfQoJCWVsc2UgaWYoZGlyID09IDIpIC8vIOuzgCDquLjsnbQg7Kad6rCACgkJewoJCQlsICs9IDI7CgkJfQoJfQoKCWZvcihpPTA7aTxYO2krKykKCXsKCQlpZihpID09IDEpIC8vIOuRmOynuOykhCDsmIjsmbgg7LKY66asCgkJewoJCQlwcmludGYoIipcbiIpOwoJCQljb250aW51ZTsKCQl9CgkJZm9yKGo9MDtqPFk7aisrKSAvLyDtlZwg6riA7J6Q7JSpIOy2nOugpQoJCXsKCQkJaWYoYXJyW2ldW2pdID09IDEpCgkJCXsKCQkJCXByaW50ZigiKiIpOwoJCQl9CgkJCWVsc2UKCQkJewoJCQkJcHJpbnRmKCIgIik7CgkJCX0KCQl9CgkJaWYoaSA8IFgtMSkgLy8g7KSEIOuwlOq/iAoJCXsKCQkJcHJpbnRmKCJcbiIpOwoJCX0KCX0KCglyZXR1cm4gMDsKfQ==