n = int(input())

if n % 3 == 0:
    m = n // 3
    for i in range(m):
        print('.' * (3 * i) + 'abb' + '.' * (n - 3 - 3 * i))
        print('.' * (3 * i) + 'a.a' + '.' * (n - 3 - 3 * i))
        print('.' * (3 * i) + 'bba' + '.' * (n - 3 - 3 * i))
elif n % 4 == 0:
    m = n // 4
    for i in range(m):
        print('.' * (4 * i) + 'abaa' + '.' * (n - 4 - 4 * i))
        print('.' * (4 * i) + 'abcc' + '.' * (n - 4 - 4 * i))
        print('.' * (4 * i) + 'ccba' + '.' * (n - 4 - 4 * i))
        print('.' * (4 * i) + 'aaba' + '.' * (n - 4 - 4 * i))
else:
    if n % 3 == 1:
        if n >= 10:
            print('abaa' + '.' * (n - 4))
            print('abcc' + '.' * (n - 4))
            print('ccba' + '.' * (n - 4))
            print('aaba' + '.' * (n - 4))

            m = (n - 4) // 3
            for i in range(m):
                if i == m - 1:
                    print('.' * 4 + 'dd.' + '.' * (n - 10) + 'abb')
                    print('.' * 4 + '..d' + '.' * (n - 10) + 'a.a')
                    print('.' * 4 + '..d' + '.' * (n - 10) + 'bba')
                else:
                    print('.' * (4 + 3 * i) + 'abbdd.' + '.' * (n - 10 - 3 * i))
                    print('.' * (4 + 3 * i) + 'a.a..d' + '.' * (n - 10 - 3 * i))
                    print('.' * (4 + 3 * i) + 'bba..d' + '.' * (n - 10 - 3 * i))
        elif n == 7:
            print('a.aa..a')
            print('ab....a')
            print('.b..aab')
            print('aabb..b')
            print('.b.aacc')
            print('aba....')
            print('a.a.aa.')
        else: # n == 4
            print('abaa')
            print('abcc')
            print('ccba')
            print('aaba')

    elif n % 3 == 2:
        if n >= 14:
            m = (n - 8) // 3

            print('abaa' + '.' * (n - 4))
            print('abcc' + '.' * (n - 4))
            print('ccba' + '.' * (n - 4))
            print('aaba' + '.' * (n - 4))
            print('....abaa' + '.' * (n - 8))
            print('....abcc' + '.' * (n - 8))
            print('....ccba' + '.' * (n - 8))
            print('....aaba' + '.' * (n - 8))

            m = (n - 8) // 3
            for i in range(m):
                if i == m - 1:
                    print('.' * 8 + 'dd.' + '.' * (n - 14) + 'abb')
                    print('.' * 8 + '..d' + '.' * (n - 14) + 'a.a')
                    print('.' * 8 + '..d' + '.' * (n - 14) + 'bba')
                else:
                    print('.' * (8 + 3 * i) + 'abbdd.' + '.' * (n - 14 - 3 * i))
                    print('.' * (8 + 3 * i) + 'a.a..d' + '.' * (n - 14 - 3 * i))
                    print('.' * (8 + 3 * i) + 'bba..d' + '.' * (n - 14 - 3 * i))
        elif n == 11:
            print('a.aa..a' + '....')
            print('ab....a' + '....')
            print('.b..aab' + '....')
            print('aabb..b' + '....')
            print('.b.aacc' + '....')
            print('aba....' + '....')
            print('a.a.aa.' + '....')
            print('.' * 7 + 'abaa')
            print('.' * 7 + 'abcc')
            print('.' * 7 + 'ccba')
            print('.' * 7 + 'aaba')
        elif n == 8:
            print('abaa....')
            print('abcc....')
            print('ccba....')
            print('aaba....')
            print('....abaa')
            print('....abcc')
            print('....ccba')
            print('....aaba')
        elif n == 5:
            print('abbaa')
            print('a..bc')
            print('bb.bc')
            print('a.aab')
            print('abb.b')
        else:
            print(-1)


Measured memory_bytes: 4340