#arc106c. [arc106_c]Solutions

[arc106_c]Solutions

問題文

22 つの区間 \[L_1:R_1\], \[L_2:R_2\] について, L1leqR2L_1 \\leq R_2 かつ L2leqR1L_2 \\leq R_1 であるとき, この 22 つの区間が_交わる_と定義します。

以下の問題 PP を考えます。

入力: NN 個の区間 \[L_1: R_1\], \\cdots, \[L_N:R_N\] L1,L2,cdots,LN,R1,R2,cdots,RNL_1, L_2, \\cdots, L_N, R_1, R_2, \\cdots, R_Nは全て異なる。 出力: どの 22 つの区間も交わらないように選べる区間の最大数

高橋君は、以下のように動作するプログラムを実装しました。

RiR_i の値が昇順となるように, 入力された区間を $\[L_{p_1}:R_{p_1}\], \[L_{p_2}:R_{p_2}\], \\cdots , \[L_{p_N}:R_{p_N}\]$ と並び替える。 i=1,2,cdots,Ni = 1, 2, \\cdots , N について、以下を行う。 これまでに選んだどの区間とも交わらないならば、 \[L_{p_i}:R_{p_i}\] を選ぶ。 選んだ区間の数を出力する。

一方、青木君は、以下のように動作するプログラムを実装しました。

LiL_i の値が昇順となるように, 入力された区間を $\[L_{p_1}:R_{p_1}\], \[L_{p_2}:R_{p_2}\], \\cdots , \[L_{p_N}:R_{p_N}\]$ と並び替える。 i=1,2,cdots,Ni = 1, 2, \\cdots , N について、以下を行う。 これまでに選んだどの区間とも交わらないならば、 \[L_{p_i}:R_{p_i}\] を選ぶ。 選んだ区間の数を出力する。

整数 N,MN, Mが与えられます。 NN 個の区間から成る問題 PP の入力であって、

(高橋君のプログラムが出力する値)(青木君のプログラムが出力する値)=M(高橋君のプログラムが出力する値) - (青木君のプログラムが出力する値) = M

となるものを構築してください。

制約

  • 入力は全て整数
  • 1leqNleq2times1051 \\leq N \\leq 2 \\times 10^5
  • \-NleqMleqN\-N \\leq M \\leq N

入力

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

NN MM

出力

条件を満たす NN 個の区間が存在しない場合は -1 と出力せよ。

存在する場合は、 以下のように NN 行出力せよ。

L1L_1 R1R_1 L2L_2 R2R_2 vdots\\vdots LNL_N RNR_N

ただし, \[L_1:R_1\], \\cdots, \[L_N:R_N\]は以下の条件を満たさなければならない。

  • 1leqLi<Rileq1091 \\leq L_i < R_i \\leq 10^9
  • LineqLjL_i \\neq L_j (ineqji \\neq j)
  • RineqRjR_i \\neq R_j (ineqji \\neq j)
  • LineqRjL_i \\neq R_j
  • L1,cdots,LN,R1,cdots,RNL_1, \\cdots , L_N , R_1, \\cdots , R_N は整数 (21:46 追記)

答えが複数存在する場合は、どれを出力しても構わない。

出力の最後には必ず改行を行うこと。


入力例 1

5 1

出力例 1

1 10
8 12
13 20
11 14
2 4

55 つの区間を順に区間 11 、区間 22cdots\\cdots 、区間 55 と名付けます。

高橋君のプログラムは以下のように動作します。

区間を区間 55 、区間 11 、区間 22 、区間 44 、区間 33 と並び替えます。 区間 55 を選びます。 区間 11 は選びません。(区間 55 と交わっている為) 区間 22 を選びます。 区間 44 は選びません。 (区間 22 と交わっている為) 区間 33 を選びます。

以上より、高橋君のプログラムが出力する値は 33 となります。

青木君のプログラムは以下のように動作します。

区間を区間 11 、区間 55 、区間 22 、区間 44 、区間 33 と並び替えます。 区間 11 を選びます。 区間 55 は選びません。(区間 11 と交わっている為) 区間 22 は選びません。 (区間 11 と交わっている為) 区間 44 を選びます。 区間 33 は選びません。 (区間 44 と交わっている為)

以上より、青木君のプログラムが出力する値は 22 となります。

このとき、 32=1left(=Mright)3 - 2 = 1 \\left(= M \\right) であり、この 55 つの区間は条件を満たします。


入力例 2

10 -10

出力例 2

-1