Det finns $2n$ kort med talen från $1$ till $2n$ skrivna på sig, staplade i ordningen $1, 2, 3, \ldots, 2n$ uppifrån.
Dessa kort ordnas om genom att använda följande metoder flera gånger:
Kupering vid heltalet $k$
Efter att kortleken delats upp i hög A med de $k$ översta korten och hög B med de återstående $2n-k$ korten, läggs hög B ovanpå hög A.
Riffle-blandning (Riffle shuffle)
Kortleken delas upp i hög A med de $n$ översta korten och hög B med de återstående $n$ korten, och slås samman till $1$ hög så att korten uppifrån blir: det $1$:a kortet i A, det $1$:a kortet i B, det $2$:a kortet i A, det $2$:a kortet i B, $\ldots$, det $n$-te kortet i A, det $n$-te kortet i B.
Skriv ett program som ordnar om korten enligt instruktionerna i indatan och skriver ut kortens nummer efter omordningen i ordning uppifrån.
Indata
- På rad $1$ står $n$ ($1 \le n \le 100$). Antalet kort är alltså $2n$.
- På rad $2$ står antalet operationer $m$ ($1 \le m \le 1000$).
- På de $m$ raderna från rad $3$ till rad $m + 2$ står det $1$ heltal $k$ från $0$ till $2n-1$, som i ordning anger metoden för att ordna om korten:
- Om $k = 0$ utförs en riffle-blandning.
- Om $1 \le k \le 2n-1$ utförs en kupering vid $k$.
Utdata
Utdatan ska bestå av $2n$ rader. På rad $1$ skrivs numret på det översta kortet efter avslutad omordning ut, på rad $2$ numret på det $2$:a kortet uppifrån efter avslutad omordning, och så vidare, så att numret på det $i$-te kortet uppifrån skrivs ut på rad $i$.
Exempel
Indata 1
2 2 1 0
Utdata 1
2 4 3 1
Indata 2
3 4 2 4 0 0
Utdata 2
1 5 4 3 2 6