from math import fabs
def left_windmill(tab):
for line in range(2 * r):
for row in range(2 * r):
if line in range(r):
if row in range(line + 1, r): # górny lewy
tab[line][row] = '.'
if row in range(2 * r - line, 2 * r): # górny lewy
tab[line][row] = '.'
if line in range(r + 1, 2 * r): # dolny prawy
if row in range(r, line):
tab[line][row] = '.'
if row in range(0, 2 * r - line - 1) and line >= r: # dolny lewy
tab[line][row] = '.'
return tab
def right_windmill(tab):
for line in range(2 * r):
for row in range(2 * r):
if line in range(r):
if row in range(r, 2 * r - 1 - line): # prawy górny
tab[line][row] = '.'
if row in range(0, line): # górny lewy
tab[line][row] = '.'
if line in range(r + 1, 2 * r):
if row in range(2 * r - line, r): # lewy dolny
tab[line][row] = '.'
if row in range(line + 1, 2 * r) and line >= r: # prawy dolny
tab[line][row] = '.'
return tab
test = 1
while test != 0:
test = int(input())
r = int(fabs(test))
windmill = [["*"] * r * 2 for i in range(2 * r)]
if test > 0:
windmill = left_windmill(windmill)
if test < 0:
windmill = right_windmill(windmill)
result = []
for i in windmill:
result.append("".join(i))
for k in result:
print(k)
print('')
ZnJvbSBtYXRoIGltcG9ydCBmYWJzCgoKZGVmIGxlZnRfd2luZG1pbGwodGFiKToKICAgIGZvciBsaW5lIGluIHJhbmdlKDIgKiByKToKICAgICAgICBmb3Igcm93IGluIHJhbmdlKDIgKiByKToKICAgICAgICAgICAgaWYgbGluZSBpbiByYW5nZShyKTogCiAgICAgICAgICAgICAgICBpZiByb3cgaW4gcmFuZ2UobGluZSArIDEsIHIpOiAgICMgZ8Ozcm55IGxld3kKICAgICAgICAgICAgICAgICAgICB0YWJbbGluZV1bcm93XSA9ICcuJwoKICAgICAgICAgICAgICAgIGlmIHJvdyBpbiByYW5nZSgyICogciAtIGxpbmUsIDIgKiByKTogICMgZ8Ozcm55IGxld3kKICAgICAgICAgICAgICAgICAgICB0YWJbbGluZV1bcm93XSA9ICcuJwoKICAgICAgICAgICAgaWYgbGluZSBpbiByYW5nZShyICsgMSwgMiAqIHIpOiAgIyBkb2xueSBwcmF3eQogICAgICAgICAgICAgICAgaWYgcm93IGluIHJhbmdlKHIsIGxpbmUpOgogICAgICAgICAgICAgICAgICAgIHRhYltsaW5lXVtyb3ddID0gJy4nCgogICAgICAgICAgICBpZiByb3cgaW4gcmFuZ2UoMCwgMiAqIHIgLSBsaW5lIC0gMSkgYW5kIGxpbmUgPj0gcjogICMgZG9sbnkgbGV3eQogICAgICAgICAgICAgICAgdGFiW2xpbmVdW3Jvd10gPSAnLicKCiAgICByZXR1cm4gdGFiCgoKZGVmIHJpZ2h0X3dpbmRtaWxsKHRhYik6CiAgICBmb3IgbGluZSBpbiByYW5nZSgyICogcik6CiAgICAgICAgZm9yIHJvdyBpbiByYW5nZSgyICogcik6CiAgICAgICAgICAgIGlmIGxpbmUgaW4gcmFuZ2Uocik6CiAgICAgICAgICAgICAgICBpZiByb3cgaW4gcmFuZ2UociwgMiAqIHIgLSAxIC0gbGluZSk6ICAjIHByYXd5IGfDs3JueQogICAgICAgICAgICAgICAgICAgIHRhYltsaW5lXVtyb3ddID0gJy4nCgogICAgICAgICAgICAgICAgaWYgcm93IGluIHJhbmdlKDAsIGxpbmUpOiAgIyBnw7NybnkgbGV3eQogICAgICAgICAgICAgICAgICAgIHRhYltsaW5lXVtyb3ddID0gJy4nCgogICAgICAgICAgICBpZiBsaW5lIGluIHJhbmdlKHIgKyAxLCAyICogcik6CiAgICAgICAgICAgICAgICBpZiByb3cgaW4gcmFuZ2UoMiAqIHIgLSBsaW5lLCByKTogICMgbGV3eSBkb2xueQogICAgICAgICAgICAgICAgICAgIHRhYltsaW5lXVtyb3ddID0gJy4nCgogICAgICAgICAgICBpZiByb3cgaW4gcmFuZ2UobGluZSArIDEsIDIgKiByKSBhbmQgbGluZSA+PSByOiAgIyBwcmF3eSBkb2xueQogICAgICAgICAgICAgICAgdGFiW2xpbmVdW3Jvd10gPSAnLicKCiAgICByZXR1cm4gdGFiCgoKdGVzdCA9IDEKCndoaWxlIHRlc3QgIT0gMDoKICAgIHRlc3QgPSBpbnQoaW5wdXQoKSkKCiAgICByID0gaW50KGZhYnModGVzdCkpCiAgICB3aW5kbWlsbCA9IFtbIioiXSAqIHIgKiAyIGZvciBpIGluIHJhbmdlKDIgKiByKV0KCiAgICBpZiB0ZXN0ID4gMDoKICAgICAgICB3aW5kbWlsbCA9IGxlZnRfd2luZG1pbGwod2luZG1pbGwpCiAgICBpZiB0ZXN0IDwgMDoKICAgICAgICB3aW5kbWlsbCA9IHJpZ2h0X3dpbmRtaWxsKHdpbmRtaWxsKQoKICAgIHJlc3VsdCA9IFtdCgogICAgZm9yIGkgaW4gd2luZG1pbGw6CiAgICAgICAgcmVzdWx0LmFwcGVuZCgiIi5qb2luKGkpKQoKICAgIGZvciBrIGluIHJlc3VsdDoKICAgICAgICBwcmludChrKQogICAgcHJpbnQoJycpCgoK