• Language:
  • Time limit: 1.00 s
  • Memory limit: 512 MB

Harjoittelet taikatemppua, jossa järjestät korttipakan "sekoittamalla" sitä. Tempussa voit tehdä kahdenlaisia operaatioita:

  • Operaatio A: Nosta pakan päältä a korttia (\lfloor n/3 \rfloor \leq a \leq \lceil 2n/3 \rceil) ja laita ne pakan pohjalle.
  • Operaatio B: Nosta pakan päältä a korttia (\lfloor n/3 \rfloor \leq a \leq \lceil 2n/3 \rceil). Sitten laita nostetuista korteista b alimmaista korttia (\lfloor a/3 \rfloor \leq b \leq \lceil 2a/3 \rceil) pakan pohjalle ja jäljelle jääneet a-b korttia pakan päälle.

Operaatiot on esitetty alla olevassa kuvassa.

Operaatiot A ja B

Tehtäväsi on etsiä jokin lista operaatioita, jotka järjestävät korttipakan. Pakka tulee järjestää niin, että pienin kortti on ylimpänä ja suurin kortti on alimpana.

Merkintä \lfloor x\rfloor tarkoittaa lukua x pyöristettynä alaspäin kokonaisluvuksi ja merkintä \lceil x\rceil lukua x pyöristettynä ylöspäin kokonaisluvuksi.

Syöte

Ensimmäisellä rivillä on kaksi kokonaislukua n ja m: korttien määrä ja operaatioiden enimmäismäärä. Kortit on numeroitu 1,2,\dots,n.

Toisella rivillä on n kokonaislukua: korttien järjestys. Kortit on ilmoitettu järjestyksessä ylimmästä alimpaan.

Tuloste

Tulosta ensin kokonaisluku k: operaatioiden määrä. Tulosta sitten k riviä, joista jokaisella on operaation kuvaus muodossa "A a" tai "B a b".

Ratkaisussa saa olla enintään m operaatiota. Voit tulostaa minkä tahansa kelvollisen ratkaisun.

Esimerkki

Syöte:

8 100000
8 3 6 7 4 1 2 5

Tuloste:

3
B 4 2
A 3
B 6 4

Selitys: Tässä operaatiot järjestävät pakan seuraavasti:

  • Alkutilanne: [8,3,6,7,4,1,2,5]
  • Ensimmäinen operaatio: [8,3,4,1,2,5,6,7]
  • Toinen operaatio: [1,2,5,6,7,8,3,4]
  • Kolmas operaatio: [1,2,3,4,5,6,7,8]

Pisteytys

OsatehtäväRajoituksetPisteet
11 \le n \le 8, m=10^516
21 \le n \le 100, m=10^523
31 \le n \le 500, m=10^525
41 \le n \le 500, m=500036