We define a magic triangle of size n as a triangle with n rows, the first one with n elements, the second one with n − 1 elements, …, and the last one with one element, such that:

- All numbers between 1 and n(n + 1)/2 appear once.
- Each number that is not in the first row is equal to the absolute value of the difference of the two values immediately above it.

Write a program that, given an n, prints all the magic triangles of size n, or indicates that there is none.

Input

Input consists of a natural number n > 0.

Output

Print all the magic triangles of size n. Note that the numbers are always written with two digits (if needed, adding a zero to the left), and that they are separated with two spaces. Print an empty line after each triangle.

Ignore the triangles that are symmetrical of any other lexicographically smaller. If there is no possible triangle for the given n, indicate it following the format of the example.

Observation

It can be proved that there is no solution for n ≥ 6, but do not use this fact in your program.

You can print the solutions to this exercise in any order.

Public test cases

**Input**

2

**Output**

01 03 02 02 03 01

**Input**

5

**Output**

06 14 15 03 13 08 01 12 10 07 11 02 04 09 05

**Input**

6

**Output**

no solution for n = 6

Information

- Author
- Salvador Roura
- Language
- English
- Translator
- Carlos Molina
- Original language
- Catalan
- Other languages
- Catalan
- Official solutions
- C++
- User solutions