atcoder#ABC165E. [ABC165E] Rotation Matching

[ABC165E] Rotation Matching

配点 : 500500

問題文

あなたは「AtCoderじゃんけん」という一対一のゲームの大会を主催することになりました。 大会の参加者は NN 人で、それぞれには 11 から NN の相異なる番号が割り振られています。 アリーナには二人が入ることのできる対戦場が MM 個用意されており、あなたはそれぞれの対戦場に二つの相異なる 11 以上 NN 以下の整数を割り当てなければいけません。 複数の対戦場に同じ整数を割り当てることはできません。 大会は NN ラウンドによって構成され、それぞれのラウンドは以下のようにして取り行われます。

  • それぞれの参加者は、自分の番号が割り当てられた対戦場が存在するならそこに行き、そこに来たもう一方の相手と対戦する。
  • その後、それぞれの参加者が、自分の番号に 11 を足す。もし 11 を足した後の番号が N+1N+1 であるなら、その値を 11 に変更する。

NN 回のラウンドを通じて、二回以上同じ参加者と対戦するような参加者が存在しないようにしたいです。 このような条件を満たす対戦場への整数の割り当てをひとつ出力してください。 ただし、与えられる制約のもとでそのような割り当てが必ず存在することが示せます。

制約

  • 1M1 \leq M
  • M×2+1N200000M \times 2 +1 \leq N \leq 200000

入力

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

NN MM

出力

以下の形式で MM 行に出力せよ。 ii 行目には ii 個目の対戦場に割り当てる二つの整数を出力せよ。

a1a_1 b1b_1

a2a_2 b2b_2

::

aMa_M bMb_M

4 1
2 3

参加者 44 人を A,B,C,DA,B,C,D とし、はじめ A には 11、Bには 22、Cには 33、Dには 44 が割り振られているとします。

  • 11 回目のラウンドでは 22 の割り振られた B と 33 の割り振られた C が対戦し、A の番号が 22 、B の番号が 33、Cの番号が 44、D の番号が 11となります。
  • 22 回目のラウンドでは 22 の割り振られた A と 33 の割り振られた B が対戦し、A の番号が 33 、B の番号が 44、C の番号が 11、D の番号が 22 となります。
  • 33 回目のラウンドでは 22 の割り振られた D と 33 の割り振られた A が対戦し、A の番号が 44 、B の番号が 11、C の番号が 22、D の番号が 33 となります。
  • 44 回目のラウンドでは 22 の割り振られた C と 33 の割り振られた D が対戦し、A の番号が 11 、B の番号が 22、C の番号が 33、D の番号が 44 となります。

44 回のラウンドを通じて二回以上同じ参加者と対戦するような参加者が存在しないため、この出力は正解となります。

7 3
1 6
2 5
3 4