E - Aim High Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MiB

配点 : 100

問題文

あなたは 2 次元平面を用いてゲームをします。始め、-100 \le x \le 100,-100 \le y \le 0 を満たす格子点 (x,y) に駒が 1 個ずつ置かれています。

あなたは以下の操作を 0 回以上行うことが出来ます。

  • 2 個の点の組 (a,b),(c,d) であって、|a-c|+|b-d| = 1 かつ (a,b),(c,d) 両方に駒が 1 個以上あるものを選ぶ。(a,b) にある駒 1 個を (c,d) を中心として時計回りか反時計周りに 90 度回転させた点に置き、(c,d) にある駒を 1 個消す。(既に移動先の点に駒が置かれていても良い。)

あなたの目標は操作が全て終わったときに y 座標が N 以上であるいずれかの点に駒が置かれている状態にすることです。目標が達成可能か判定し、可能ならば操作列を 1 個構築してください。

T 個のテストケースが与えられるので、それぞれについて解いてください。

制約

  • 1 \le T \le 6
  • 1 \le N \le 6

入力

入力は以下の形式で標準入力から与えられる。

T
\mathrm{case}_1
\mathrm{case}_2
\vdots
\mathrm{case}_T

ここで、\mathrm{case}_i とは i 番目のテストケースを意味する。各テストケースは以下の形式で与えられる。

N

出力

T 個のテストケースへの出力を与えられた順に改行区切りで出力せよ。

それぞれのテストケースについては、目標を達成することが出来ないならば -1 を、そうでないならば操作回数を Ki 回目の操作で (a_i,b_i) にある駒を (c_i,d_i) を中心として (e_i,f_i) に移動させるとき以下のように出力せよ。

K
a_1 b_1 c_1 d_1 e_1 f_1
a_2 b_2 c_2 d_2 e_2 f_2
\vdots
a_K b_K c_K d_K e_K f_K

入力例 1

1
1

出力例 1

1
1 0 0 0 0 1

1 回目の操作で、(1,0) にある駒を (0,0) を中心に時計回りに 90 度回転させて (0,1) に置きます。

この操作によって y 座標が 1 以上である点 (0,1) に駒を置くことが出来たので、目標を達成できました。