#agc013c. [agc013_c]Ants on a Circle

[agc013_c]Ants on a Circle

問題文

周の長さ LL の円があります。 この円の周上には座標が設定されていて、座標の値は、ある基準点からどれだけ時計回りに進んだかを表しています。

この円周上に NN 匹の蟻がいます。 蟻には、座標の小さいものから順に、11 から NN までの番号がついています。 ii 番目の蟻は座標 XiX_i にいます。

これから、NN 匹の蟻は一斉に動き出します。 ii 匹目の蟻は、WiW_i11 なら時計回りに、WiW_i22 なら反時計回りに動き始めます。 全ての蟻の移動速度は常に、11 秒間にちょうど 11 の距離を進む速さです。 蟻が動いていくと、二つの蟻がぶつかることがあります。 その時はどちらの蟻も、ぶつかった瞬間に進む向きを反転して動き続けます。

蟻が動き始めてから TT 秒後にそれぞれの蟻がいる位置を求めて下さい。

制約

  • 入力は全て整数である
  • 1leqNleq1051 \\leq N \\leq 10^5
  • 1leqLleq1091 \\leq L \\leq 10^9
  • 1leqTleq1091 \\leq T \\leq 10^9
  • 0leqX1<X2<...<XNleqL10 \\leq X_1 < X_2 < ... < X_N \\leq L - 1
  • 1leqWileq21 \\leq W_i \\leq 2

入力

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

NN LL TT X1X_1 W1W_1 X2X_2 W2W_2 :: XNX_N WNW_N

出力

出力は NN 行からなる。 出力の ii 行目には、ii 番目の蟻が TT 秒後にいる位置の座標を出力せよ。 なお、座標の値は 00 以上 LL 未満の値として出力せよ。


入力例 1

3 8 3
0 1
3 2
6 1

出力例 1

1
3
0

蟻が動き始めてから 1.51.5 秒後、蟻 11 と 蟻 22 が、座標 1.51.5 の位置でぶつかります。 その 11 秒後、蟻 11 と蟻 33 が、座標 0.50.5 の位置ぶつかります。 その 0.50.5 秒後、つまり蟻が動き始めてから 33 秒後には、 蟻 112233 はそれぞれ座標 113300 にいます。


入力例 2

4 20 9
7 2
9 1
12 1
18 1

出力例 2

7
18
18
1