昔、Kino という旅好きの子供がいて、不思議な場所をたくさん訪れていました。ある日、大きな橋にたどり着くと、橋の上には多くのオープンカーが止まっていました。あいにく橋は狭く、横に並んで通れるのは 1 台だけです。しかも車同士が道を譲らないので、両方向から来た車が詰まって通れなくなっていました。
その後、建設者は橋に新しい機能を加えました。橋のある区間を $180$ 度回転させて、その区間にあるオープンカーの前後を反転させる機能です。下の図を見てください。
図 1. オープンカー 321 を回転させると 123 になる
図のように、橋の上でオープンカー 321 と 45 が出会うと渋滞が起こります。このとき 321 を回転させれば、橋の上の車の順序は 12345 となり、進行方向もすべて同じになるので、橋から降りることができます。もちろん、これは簡単な例です。実際の橋の状況はもっと複雑で、12345 のような形にするには何度も回転させる必要があります。
ところが、設計者は橋の設計を終えると旅に出てしまい、残った住民の中にはこの不思議な橋を操作できる人がいませんでした。そのため橋の上はますます混乱し、ついに現在の状況になりました。橋を渡るため、Kino は橋のそばで制御装置と説明書を見つけ、操作方法を再発見しました。そして近くの住民に手伝ってもらい、橋の上のオープンカーを $1,2,3,\ldots$ の順に、すべて同じ方向を向くように並べることに成功しました。彼がどのように行ったか分かりますか?
入力
これは出力のみを提出する問題です。入力ファイル convertible1.in~convertible10.in はユーザーディレクトリに置かれています。入力ファイルの最初の行は橋の上にあるオープンカーの台数 $n$ で、車には $1,2,\ldots,n$ の番号が付いています。2 行目は車の位置と方向で、$+i$ または $-i$ の列として表されます。$j$ 番目の位置が $-i$ なら、橋の $j$ 番目の位置にある車 $i$ は右を向いています。$+i$ なら、その位置の車 $i$ は左を向いています。
出力
プログラムを提出する必要はありません。出力ファイル convertible1.out~convertible10.out をユーザーディレクトリに置いてください。最初の行は回転回数 $m$ です。続く $m$ 行はそれぞれ 1 回の回転を表し、左端の位置と右端の位置を含みます。最終的な列は $1,2,3,\ldots,n$ になる必要があり、$-1,-2,-3,\ldots,-n$ やその他の列ではいけません。
入出力例
入力 1
5 -3 -2 -1 4 5
出力 1
1 1 3
小課題
各テストケースの満点は 10 点です。得点は、あなたの解答と参考解答の良さの比率によって決まります。
プログラムのテスト方法
この問題には出力検査プログラム convertible_c が用意されています。次のように実行します。
#./convertible_c 3
これは convertible3.out が正しいかを検査します。