import sys
def make_chessboard(n=12, dark='■', light='□'):
"""
Повертає матрицю n x n з символами шахівниці.
Використано слайси: first_row[:] щоб копіювати, second_row = first_row[::-1] щоб отримати інверсію.
"""
first_row = [light if j % 2 == 0 else dark for j in range(n)]
# інвертований рядок — просто реверс першого (це демонстрація слайсу[::-1])
second_row = first_row[::-1]
board = []
for i in range(n):
if i % 2 == 0:
board.append(first_row[:]) # копія першого рядка
else:
board.append(second_row[:]) # копія інвертованого
return board
def print_board(board):
for row in board:
print(' '.join(row))
def main():
data = sys.stdin.read().strip().split()
if data:
try:
n = int(data[0])
if n <= 0:
raise ValueError
except ValueError:
print("Перший аргумент має бути додатнім цілим числом, використовується 8.")
n = 12
else:
n = 12
board = make_chessboard(n)
print_board(board)
if __name__ == "__main__":
main()
aW1wb3J0IHN5cwoKZGVmIG1ha2VfY2hlc3Nib2FyZChuPTEyLCBkYXJrPSfilqAnLCBsaWdodD0n4pahJyk6CiAgICAiIiIKICAgINCf0L7QstC10YDRgtCw0ZQg0LzQsNGC0YDQuNGG0Y4gbiB4IG4g0Lcg0YHQuNC80LLQvtC70LDQvNC4INGI0LDRhdGW0LLQvdC40YbRli4KICAgINCS0LjQutC+0YDQuNGB0YLQsNC90L4g0YHQu9Cw0LnRgdC4OiBmaXJzdF9yb3dbOl0g0YnQvtCxINC60L7Qv9GW0Y7QstCw0YLQuCwgc2Vjb25kX3JvdyA9IGZpcnN0X3Jvd1s6Oi0xXSDRidC+0LEg0L7RgtGA0LjQvNCw0YLQuCDRltC90LLQtdGA0YHRltGOLgogICAgIiIiCiAgICBmaXJzdF9yb3cgPSBbbGlnaHQgaWYgaiAlIDIgPT0gMCBlbHNlIGRhcmsgZm9yIGogaW4gcmFuZ2UobildCiAgICAjINGW0L3QstC10YDRgtC+0LLQsNC90LjQuSDRgNGP0LTQvtC6IOKAlCDQv9GA0L7RgdGC0L4g0YDQtdCy0LXRgNGBINC/0LXRgNGI0L7Qs9C+ICjRhtC1INC00LXQvNC+0L3RgdGC0YDQsNGG0ZbRjyDRgdC70LDQudGB0YNbOjotMV0pCiAgICBzZWNvbmRfcm93ID0gZmlyc3Rfcm93Wzo6LTFdCgogICAgYm9hcmQgPSBbXQogICAgZm9yIGkgaW4gcmFuZ2Uobik6CiAgICAgICAgaWYgaSAlIDIgPT0gMDoKICAgICAgICAgICAgYm9hcmQuYXBwZW5kKGZpcnN0X3Jvd1s6XSkgICAjINC60L7Qv9GW0Y8g0L/QtdGA0YjQvtCz0L4g0YDRj9C00LrQsAogICAgICAgIGVsc2U6CiAgICAgICAgICAgIGJvYXJkLmFwcGVuZChzZWNvbmRfcm93WzpdKSAgIyDQutC+0L/RltGPINGW0L3QstC10YDRgtC+0LLQsNC90L7Qs9C+CgogICAgcmV0dXJuIGJvYXJkCgpkZWYgcHJpbnRfYm9hcmQoYm9hcmQpOgogICAgZm9yIHJvdyBpbiBib2FyZDoKICAgICAgICBwcmludCgnICcuam9pbihyb3cpKQoKZGVmIG1haW4oKToKICAgIAogICAgZGF0YSA9IHN5cy5zdGRpbi5yZWFkKCkuc3RyaXAoKS5zcGxpdCgpCiAgICBpZiBkYXRhOgogICAgICAgIHRyeToKICAgICAgICAgICAgbiA9IGludChkYXRhWzBdKQogICAgICAgICAgICBpZiBuIDw9IDA6CiAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yCiAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CiAgICAgICAgICAgIHByaW50KCLQn9C10YDRiNC40Lkg0LDRgNCz0YPQvNC10L3RgiDQvNCw0ZQg0LHRg9GC0Lgg0LTQvtC00LDRgtC90ZbQvCDRhtGW0LvQuNC8INGH0LjRgdC70L7QvCwg0LLQuNC60L7RgNC40YHRgtC+0LLRg9GU0YLRjNGB0Y8gOC4iKQogICAgICAgICAgICBuID0gMTIKICAgIGVsc2U6CiAgICAgICAgbiA9IDEyCgogICAgYm9hcmQgPSBtYWtlX2NoZXNzYm9hcmQobikKICAgIHByaW50X2JvYXJkKGJvYXJkKQoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIG1haW4oKQo=