입출력량이 매우 많으므로 빠른 입출력을 사용하는 것을 권장합니다.
양의 정수 에 대해 격자를 생각하자. 각 칸에는 중 하나의 정수를 써야 하며, 모든 정수는 정확히 한 번씩 사용되어야 한다.
상하좌우로 인접한 두 칸으로 이루어진 쌍을 생각한다. 두 칸에 쓰인 두 수가 서로소이면 이 쌍은 좋은 쌍이다. 그렇지 않으면 나쁜 쌍이다.
개의 값 가 주어진다. 각 에 대해 격자 하나를 출력하여라. 나쁜 쌍이 적을수록 높은 점수를 받는다.
Input
입력은 다음과 같은 형식으로 주어진다.
Output
각 테스트케이스 ()에 대해 개의 줄을 출력한다. 각 줄에는 개의 정수를 공백으로 구분하여 출력한다.
해당 개의 정수는 의 순열이어야 한다.
Constraints
- .
- ().
- .
Subtasks
Scoring
각 테스트케이스 에 대해, 출력한 격자가 의 순열이 아니면 으로 정의한다.
그렇지 않다면, 나쁜 쌍의 개수를 라 하고 를 다음과 같이 정의한다.
을 다음과 같이 정의하자.
첫 번째 서브태스크의 점수는 다음과 같다.
두 번째 서브태스크에서 각 데이터의 점수는 다음과 같다.
두 번째 서브태스크의 점수는 각 데이터 점수의 최솟값이다.
Samples
입력
2
1 2
출력
1 2
3 4
5 6
7 8
9 10
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
17 18 19 20
이 예제는 참고용이며, 실제 채점 데이터에는 포함되지 않는다.