현욱은 루빅스 큐브를 갖고 놀다가, 비슷한 퍼즐을 이차원에서 만들 수는 없을까하는 생각이 들었다.
고민 끝에 현욱은 2D Cube라는 이름의 퍼즐을 만들었다. 크기가 N(2≤N≤50)인 2D 큐브는 처음에 다음과 같은 상태로 시작한다.

N=5일 때 2D Cube의 초기 상태
여기서, 큐브를 맞추기 위해 플레이어는 아래 두 가지 종류의 동작을 할 수 있다.
현욱은 위 동작을 이용해서 섞어놓은 큐브를 다시 맨 처음 상태로 되돌리고 싶다. 이 때, 동작 횟수가 너무 많으면 수행하기 힘들기 때문에 동작을 최대 20000번 아래로 수행해서 큐브를 맞추고 싶다. 현욱을 도와 20000번 이하의 동작으로 큐브를 맞추는 방법을 찾는 프로그램을 작성해보자. 주어진 입력에서 큐브를 20000번 이하의 동작으로 맞추는 방법은 항상 존재한다.
첫 줄에 큐브의 크기 N이 주어진다(2≤N≤50).
둘째 줄부터 N 줄에 걸쳐 큐브의 맨 윗줄부터 순서대로 큐브의 현재 상태를 나타내는 값이 주어진다.
첫 줄에 수행한 연산 횟수 K를 출력한다(0≤K≤20000).
둘째 줄부터 K 줄에 걸쳐 수행한 연산을 순서대로 출력한다.