We all know the problem about the number of ways one can tile a 2 × n field by 1 × 2 dominoes. You probably remember that it goes down to Fibonacci numbers. We will talk about some other problem below, there you also are going to deal with tiling a rectangular field with dominoes.

You are given a 4 × n rectangular field, that is the field that contains four lines and n columns. You have to find for it any tiling by 1 × 2 dominoes such that each of the n - 1 potential vertical cuts along the grid lines intersects at least one domino, splitting it in two. No two dominoes in the sought tiling should overlap, each square of the field should be covered by exactly one domino. It is allowed to rotate the dominoes, that is, you can use 2 × 1 as well as 1 × 2 dominoes.

Write a program that finds an arbitrary sought tiling. 

Input

The input contains one positive integer n (1 ≤ n ≤ 100) — the number of the field's columns.

Output

If there's no solution, print "-1" (without the quotes). Otherwise, print four lines containing n characters each — that's the description of tiling, where each vertical cut intersects at least one domino. You should print the tiling, having painted the field in no more than 26 colors. Each domino should be painted a color. Different dominoes can be painted the same color, but dominoes of the same color should not be side-neighbouring. To indicate colors you should use lowercase Latin letters. Print any of the acceptable ways of tiling.

Examples

Input

4


Output

yyzz
bccd
bxxd
yyaa

Source: codeforces | Difficulty: EASY
Tags: Implementation

Constructive algorithms


Solutions:
def computeTiling(n):
	if n == 1:
		print('a\na\nf\nf')
		return
	for tiling in generateRowTilings(n):
		print(''.join(tiling))

def generateRowTilings(n):
	for (rowNum, firstTile, pattern) in generateRowTilingPatterns(n):
		yield makeRowTiling(rowNum, firstTile, pattern, n)

def generateRowTilingPatterns(n):
	rows = (1, 2, 3, 4)
	firstTiles = ('a', 'a', 'd', 'e')
	patterns = ('bbcc', 'ccbb', 'deed', 'edde')
	return zip(rows, firstTiles, patterns)

def makeRowTiling(row, prefix, pattern, n):
	yield prefix
	yield from (pattern[i % 4] for i in range(n - 2))
	yield (pattern[(n - 2) % 4] if n % 2 != (row - 1) // 2 else 'f')
n = int(input())
computeTiling(n)


def computeTiling(n):
	printEvenLengthTiling(n) if isEven(n) else printOddLengthTiling(n)

def isEven(n):
	return n % 2 == 0

def printEvenLengthTiling(n):
	print(buildRowFromPattern('', 'nnoo', '', n))
	print(buildRowFromPattern('l', 'xxzz', 'f', n))
	print(buildRowFromPattern('l', 'zzxx', 'f', n))
	print(buildRowFromPattern('', 'nnoo', '', n))

def printOddLengthTiling(n):
	print(buildRowFromPattern('l', 'xxzz', '', n))
	print(buildRowFromPattern('l', 'zzxx', '', n))
	print(buildRowFromPattern('', 'nnoo', 'f', n))
	print(buildRowFromPattern('', 'oonn', 'f', n))

def buildRowFromPattern(prefix, infix, suffix, n):
	return ''.join(applyPattern(prefix, infix, suffix, n))

def applyPattern(prefix, infix, suffix, n):
	n = n - bool(prefix) - bool(suffix)
	yield prefix
	yield from extendInfix(infix, n)
	yield suffix

def extendInfix(infix, n):
	(repetitions, reminder) = divmod(n, len(infix))
	for rep in range(repetitions):
		yield infix
	yield infix[:reminder]
n = int(input())
computeTiling(n)


n = int(input())
(s1, s2) = ('aabb', 'ccdd')
if n % 2 == 0:
	print((s1 * n)[:n])
	print('e' + (s2 * n)[:n - 2] + 'f')
	print('e' + (s1 * n)[:n - 2] + 'f')
	print((s2 * n)[:n])
else:
	print((s1 * n)[:n - 1] + 'e')
	print((s1 * n)[2:n + 1] + 'e')
	print('f' + (s2 * n)[:n - 1])
	print('f' + (s2 * n)[2:n + 1])


a = int(input())
if a % 2 == 0:
	print('aabb' * (a // 4) + 'aabb'[:a % 4])
	print('ccdd' * (a // 4) + 'ccdd'[:a % 4])
	a -= 2
	print('z' + 'eeff' * (a // 4) + 'eeff'[:a % 4] + 'x')
	print('z' + 'iijj' * (a // 4) + 'iijj'[:a % 4] + 'x')
else:
	a -= 1
	print('z' + 'aabb' * (a // 4) + 'aabb'[:a % 4])
	print('z' + 'ccdd' * (a // 4) + 'ccdd'[:a % 4])
	print('eeff' * (a // 4) + 'eeff'[:a % 4] + 'x')
	print('gghh' * (a // 4) + 'gghh'[:a % 4] + 'x')


import string
n = int(input())
l = 0

def get_next_l(exclusions=[]):
	global l
	a = string.ascii_lowercase[l]
	while a in exclusions:
		l = (l + 1) % 26
		a = string.ascii_lowercase[l]
	l = (l + 1) % 26
	return a
rows = [[''] * n for _ in range(4)]
if n == 1:
	rows[0][0] = rows[1][0] = get_next_l()
	rows[2][0] = rows[3][0] = get_next_l()
elif n == 2:
	for i in range(4):
		rows[i] = get_next_l() * 2
elif n % 2 == 0:
	for i in range(0, n, 2):
		rows[0][i] = rows[0][i + 1] = get_next_l()
	front = get_next_l(rows[0][0])
	rows[1][0] = front
	for i in range(1, n - 1, 2):
		rows[1][i] = rows[1][i + 1] = get_next_l([rows[2][i - 1]] + rows[1][i:i + 2])
	end = get_next_l(rows[0][-1] + rows[1][-2])
	rows[1][-1] = end
	rows[2][0] = front
	for i in range(1, n - 1, 2):
		rows[2][i] = rows[2][i + 1] = get_next_l([rows[2][i - 1]] + rows[1][i:i + 2] + [end])
	rows[2][-1] = end
	for i in range(0, n, 2):
		rows[3][i] = rows[3][i + 1] = get_next_l([rows[3][i - 1]] + rows[2][i:i + 2])
else:
	for i in range(0, n - 1, 2):
		rows[0][i] = rows[0][i + 1] = get_next_l()
	end = get_next_l()
	rows[0][-1] = end
	for i in range(0, n - 1, 2):
		rows[1][i] = rows[1][i + 1] = get_next_l([rows[1][i - 1]] + rows[1][i:i + 2] + [end])
	rows[1][-1] = end
	front = get_next_l(rows[1][0])
	rows[2][0] = front
	for i in range(1, n, 2):
		rows[2][i] = rows[2][i + 1] = get_next_l([rows[2][i - 1]] + rows[1][i:i + 2])
	rows[3][0] = front
	for i in range(1, n, 2):
		rows[3][i] = rows[3][i + 1] = get_next_l([rows[3][i - 1]] + rows[2][i:i + 2])
print('\n'.join((''.join(r) for r in rows)))


from sys import stdin
a = int(stdin.readline())
if a % 2 == 0:
	for b in range(0, int(a / 2)):
		if b % 2 == 0:
			if b == int(a / 2) - 1:
				print('aa')
			else:
				print('aa', end='')
		elif b == int(a / 2) - 1:
			print('bb')
		else:
			print('bb', end='')
	print('c', end='')
	for d in range(0, int(a / 2) - 1):
		if d % 2 == 0:
			print('dd', end='')
		else:
			print('ee', end='')
	print('f')
	print('c', end='')
	for d in range(0, int(a / 2) - 1):
		if d % 2 == 0:
			print('hh', end='')
		else:
			print('ii', end='')
	print('f')
	for b in range(0, int(a / 2)):
		if b % 2 == 0:
			if b == int(a / 2) - 1:
				print('aa')
			else:
				print('aa', end='')
		elif b == int(a / 2) - 1:
			print('bb')
		else:
			print('bb', end='')
else:
	for b in range(0, int((a - 1) / 2)):
		if b % 2 == 0:
			print('aa', end='')
		else:
			print('bb', end='')
	print('c')
	for b in range(0, int((a - 1) / 2)):
		if b % 2 == 0:
			print('ee', end='')
		else:
			print('ff', end='')
	print('c')
	if a == 1:
		print('d')
	else:
		print('d', end='')
	for b in range(0, int((a - 1) / 2)):
		if b % 2 == 0:
			if b == int((a - 1) / 2) - 1:
				print('bb')
			else:
				print('bb', end='')
		elif b == int((a - 1) / 2) - 1:
			print('aa')
		else:
			print('aa', end='')
	if a == 1:
		print('d')
	else:
		print('d', end='')
	for b in range(0, int((a - 1) / 2)):
		if b % 2 == 0:
			if b == int((a - 1) / 2) - 1:
				print('ee')
			else:
				print('ee', end='')
		elif b == int((a - 1) / 2) - 1:
			print('ff')
		else:
			print('ff', end='')


n = int(input())
field = [[None] * n for _ in range(4)]
for i in range(0, n - 1, 2):
	if i > 0 and field[0][i - 1] == 'a':
		field[0][i] = field[0][i + 1] = 'b'
		field[1][i] = field[1][i + 1] = 'd'
	else:
		field[0][i] = field[0][i + 1] = 'a'
		field[1][i] = field[1][i + 1] = 'c'
for i in range(1, n - 1, 2):
	if i > 0 and field[2][i - 1] == 'e':
		field[2][i] = field[2][i + 1] = 'f'
		field[3][i] = field[3][i + 1] = 'h'
	else:
		field[2][i] = field[2][i + 1] = 'e'
		field[3][i] = field[3][i + 1] = 'g'
field[2][0] = field[3][0] = 'j'
if n % 2 == 0:
	field[2][n - 1] = field[3][n - 1] = 'i'
else:
	field[0][n - 1] = field[1][n - 1] = 'i'
for line in field:
	print(''.join(line))


n = int(input())
k = n // 4
if n % 2:
	if (n - 1) % 4:
		a = 'aabb' * k + 'aac'
		b = 'bbaa' * k + 'bbc'
		c = 'dee' + 'ffee' * k
		d = 'dff' + 'eeff' * k
	else:
		a = 'aabb' * k + 'c'
		b = 'bbaa' * k + 'c'
		c = 'd' + 'ffee' * k
		d = 'd' + 'eeff' * k
	print('\n'.join((a, b, c, d)))
else:
	if n % 4:
		a = 'aabb' * k + 'aa'
		b = 'c' + 'ddcc' * k + 'd'
		c = 'c' + 'eeff' * k + 'd'
	else:
		a = 'aabb' * k
		b = 'c' + 'ddcc' * (k - 1) + 'ddc'
		c = 'c' + 'eeff' * (k - 1) + 'eec'
	print('\n'.join((a, b, c, a)))