You are given a cube of size k × k × k, which consists of unit cubes. Two unit cubes are considered neighbouring, if they have common face.

Your task is to paint each of k^3 unit cubes one of two colours (black or white), so that the following conditions must be satisfied:  each white cube has exactly 2 neighbouring cubes of white color;  each black cube has exactly 2 neighbouring cubes of black color. 


-----Input-----

The first line contains integer k (1 ≤ k ≤ 100), which is size of the cube.


-----Output-----

Print -1 if there is no solution. Otherwise, print the required painting of the cube consequently by layers. Print a k × k matrix in the first k lines, showing how the first layer of the cube should be painted. In the following k lines print a k × k matrix — the way the second layer should be painted. And so on to the last k-th layer. Note that orientation of the cube in the space does not matter.

Mark a white unit cube with symbol "w" and a black one with "b". Use the format of output data, given in the test samples. You may print extra empty lines, they will be ignored.


-----Examples-----
Input
1

Output
-1

Input
2

Output
bb
ww

bb
ww

Difficulty: MEDIUM_HARD
Tags: Combinatorics

Constructive algorithms

Starter code:

Solutions:
n = int(input())
if n % 2 == 1:
	print(-1)
else:
	for i in range(n):
		for j in range(n):
			s = ''
			if i // 2 + j & 1:
				s = 'wwbb' * (n // 4)
				if n % 4 != 0:
					s += 'ww'
			else:
				s = 'bbww' * (n // 4)
				if n % 4 != 0:
					s += 'bb'
			print(s)


class CodeforcesTask323ASolution:

	def __init__(self):
		self.result = ''
		self.k = 0

	def read_input(self):
		self.k = int(input())

	def process_task(self):
		if self.k % 2:
			self.result = '-1'
		elif self.k == 2:
			self.result = 'bb\nww\n\nbb\nww'
		else:
			level = 'b'
			cube = [[[None for y in range(self.k)] for x in range(self.k)] for z in range(self.k)]
			for z in range(self.k):
				level = 'w' if z % 2 else 'b'
				for k in range(self.k // 2):
					for x in range(2 * (k + 1)):
						cube[z][self.k // 2 - 1 - k][self.k // 2 - 1 - k + x] = level
					for x in range(2 * (k + 1)):
						cube[z][self.k // 2 + k][self.k // 2 - 1 - k + x] = level
					for y in range(2 * (k + 1)):
						cube[z][self.k // 2 - 1 - k + y][self.k // 2 - 1 - k] = level
					for y in range(2 * (k + 1)):
						cube[z][self.k // 2 - 1 - k + y][self.k // 2 + k] = level
					level = 'w' if level == 'b' else 'b'
			for layer in cube:
				for row in layer:
					print(''.join(row))
				print(' ')

	def get_result(self):
		return self.result

def __starting_point():
	Solution = CodeforcesTask323ASolution()
	Solution.read_input()
	Solution.process_task()
	print(Solution.get_result())
__starting_point()


n = int(input())
print(['\n'.join(('\n'.join((''.join(('b' if (i // 2 + j // 2 + k) % 2 else 'w' for j in range(n))) for i in range(n))) + '\n' for k in range(n))), -1][n % 2])


import sys, math
readline = sys.stdin.readline
k = int(readline())
if k % 2:
	print(-1)
else:
	for i in range(k):
		for j in range(k):
			s = ''
			if i // 2 + j & 1:
				s = 'wwbb' * (k // 4)
				if k % 4 != 0:
					s += 'ww'
			else:
				s = 'bbww' * (k // 4)
				if k % 4 != 0:
					s += 'bb'
			print(s)


K = int(input())
print('-1' if K & 1 else ''.join(['wb\n'[2 if k == K else (min(j, k, K - 1 - j, K - 1 - k) ^ i) & 1] for i in range(2) for j in range(K) for k in range(K + 1)]) * (K >> 1))


n = int(input())
if n % 2 == 1:
	print(-1)
	exit()
str1 = ''.join(['bb' if i % 2 == 1 else 'ww' for i in range(n // 2)])
str2 = ''.join(['bb' if i % 2 == 0 else 'ww' for i in range(n // 2)])
for i in range(n):
	(str1, str2) = (str2, str1)
	for j in range(n // 2):
		print(str1 if j % 2 == 0 else str2)
		print(str1 if j % 2 == 0 else str2)
	print('')


k = int(input())
if k % 2 == 1:
	print(-1)
else:
	for i in range(k):
		for j in range(k):
			a = ''
			for l in range(k):
				a += 'bw'[(i // 2 + j + l // 2) % 2]
			print(a)
		if i < k - 1:
			print()