한 변의 길이가 인 커다란 정삼각형 모양의 격자가 주어진다.
이 격자는 위에서부터 번째 줄에 개, 번째 줄에 개, , 번째 줄에 개의 합동인 작은 정삼각형들로 빈틈없이 채워져 있으며, 총 개의 작은 정삼각형으로 이루어져 있다. 각 줄의 짝수 번째 정삼각형들은 아래를 향하는 역삼각형 모양이다.
이 격자에는 다음과 같이 총 개의 '직선 축'이 존재한다.
가로축
왼쪽 아래 대각선축
왼쪽 위 대각선축
- 가로축: 각 가로줄에 평행하게 나란히 놓인 개의 축
- 왼쪽 아래 대각선축: 오른쪽 위에서 왼쪽 아래로 평행하게 내려가는 개의 축
- 왼쪽 위 대각선축: 오른쪽 아래에서 왼쪽 위로 평행하게 올라가는 개의 축
당신의 목표는 개의 모든 작은 정삼각형 안에 이상 이하의 임의의 정수를 하나씩 적는 것이다.
작은 정삼각형들에 적힌 수에 대해, 다음을 정의하자.
- 번째 가로축에 포함된 정삼각형들에 적힌 수의 합을 라 하자.
- 번째 왼쪽 아래 대각선축에 포함된 정삼각형들에 적힌 수의 합을 라 하자.
- 번째 왼쪽 위 대각선축에 포함된 정삼각형들에 적힌 수의 합을 라 하자.
이때, 다음 두 조건을 순서대로 만족하도록 격자를 구성해야 한다.
- 먼저, 의 값을 최대화해야 한다.
- 그 값이 최대가 되는 모든 구성 중에서, 격자에 적힌 모든 수의 절댓값의 합이 최소가 되어야 한다.
여기서 는 집합 에 포함되지 않은 가장 작은 음이 아닌 정수로 정의한다.
이 주어질 때, 위 조건을 만족하는 삼각 격자 중 하나를 출력하는 프로그램을 작성하시오.
Input
첫 번째 줄에 격자의 한 변의 길이 이 주어진다.
Output
조건을 만족하는 삼각 격자 하나를 개의 줄에 걸쳐 출력한다.
번째 줄에는 해당 가로줄에 위치한 개의 정수들을 왼쪽부터 순서대로 공백으로 구분하여 출력한다.
가능한 정답이 여러 가지일 경우, 그중 아무거나 하나만 출력해도 된다.
Constraints
Subtasks
Samples
입력
2
출력
0
1 2 2