Det er $2n$ kort med tallene fra $1$ til $2n$ skrevet på dem, stablet i rekkefølgen $1, 2, 3, \ldots, 2n$ ovenfra.
Disse kortene stokkes om ved å bruke følgende metoder flere ganger:
Kutt ved heltallet $k$
Etter å ha delt bunken i bunke A med de $k$ øverste kortene og bunke B med de resterende $2n-k$ kortene, legges bunke B oppå bunke A.
Riffle-stokk (Riffle shuffle)
Vi deler bunken i bunke A med de $n$ øverste kortene og bunke B med de resterende $n$ kortene, og setter dem sammen til $1$ bunke slik at rekkefølgen ovenfra blir: det $1$. kortet i A, det $1$. kortet i B, det $2$. kortet i A, det $2$. kortet i B, $\ldots$, det $n$-te kortet i A, det $n$-te kortet i B.
Skriv et program som stokker om kortene i henhold til instruksjonene i inndataene og skriver ut numrene på kortene etter omstokkingen i rekkefølge ovenfra.
Inndata
- På linje $1$ står $n$ ($1 \le n \le 100$). Det vil si at antall kort er $2n$.
- På linje $2$ står antall operasjoner $m$ ($1 \le m \le 1000$).
- På de $m$ linjene fra linje $3$ til linje $m + 2$ står det $1$ heltall $k$ fra $0$ til $2n-1$ per linje, som i rekkefølge angir metoden for å stokke om kortene:
- Hvis $k = 0$, utføres en riffle-stokk.
- Hvis $1 \le k \le 2n-1$, utføres et kutt ved $k$.
Utdata
Utdataene skal bestå av $2n$ linjer. På linje $1$ skrives nummeret på det øverste kortet etter endt omstokking, på linje $2$ nummeret på det $2$. kortet ovenfra etter endt omstokking, og så videre, slik at nummeret på det $i$-te kortet ovenfra skrives ut på linje $i$.
Eksempler
Inndata 1
2 2 1 0
Utdata 1
2 4 3 1
Inndata 2
3 4 2 4 0 0
Utdata 2
1 5 4 3 2 6