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=