CSES - Treap VIII
  • Time limit: 2.50 s
  • Memory limit: 2048 MB

Taulukko 00 sisältää luvut 1,2,,n1, 2, \ldots, n tässä järjestyksessä. Saat syötteenä qq päivitystä siten, että ii. päivitystä kuvaavat luvut kik_i, tit_i, aia_i ja bib_i. Päivityksellä ii taulukosta i1i - 1 tehdään taulukko ii seuraavasti:

  • Lue taulukon i1i - 1 kohdasta kik_i luku xx.
  • Lue taulukon tixt_i\oplus x kohdista aixa_i\oplus x ja bixb_i\oplus x luvut cc ja dd.
  • Kopioi taulukko i1i-1 taulukoksi ii ja käännä taulukosta ii väli c..dc..d ympäri.

Tässä \oplus on biteittäinen XOR-operaattori. Voit olettaa, että 1kin1\leq k_i\leq n, 0tix<i0\leq t_i\oplus x < i, 1aixbixn1\leq a_i\oplus x\leq b_i\oplus x\leq n ja cdc\leq d. Tehtäväsi on selvittää taulukon qq sisältö.

Syöte

Syötteen ensimmäisellä rivillä on luvut nn ja qq, taulukon koko ja päivitysten lukumäärä. Seuraavat qq riviä sisältävät päivitykset siten, että ii. päivityksen rivillä on luvut kik_i, tit_i, aia_i ja bib_i.

Tuloste

Tulosta yksi rivi, joka sisältää taulukon qq luvut välein eroteltuina.

Rajat

  • 1n1051\leq n\leq 10^5
  • 1q1051\leq q\leq 10^5

Esimerkki

Syöte:

8 10
8 8 10 15
3 6 1 14
3 7 1 5
5 6 2 14
8 7 6 2
8 3 6 0
5 2 0 11
4 6 2 7
7 4 14 0
3 13 9 14

Tuloste:

4 3 8 7 5 2 6 1