Є $2n$ карт, на яких написані числа від $1$ до $2n$, складених у стос у порядку $1, 2, 3, \ldots, 2n$ зверху вниз.
Ці карти переставляють, кілька разів застосовуючи такі способи:
Зняття (cut) за цілим числом $k$
Розділивши колоду на стос A з верхніх $k$ карт та стос B з решти $2n-k$ карт, кладуть стос B поверх стосу A.
Каскадне тасування (riffle shuffle)
Розділивши колоду на стос A з верхніх $n$ карт та стос B з решти $n$ карт, об'єднують їх в $1$ стос так, щоб зверху вниз йшли по черзі: $1$-ша карта з A, $1$-ша карта з B, $2$-га карта з A, $2$-га карта з B, $\ldots$, $n$-та карта з A, $n$-та карта з B.
Напишіть програму, яка переставляє карти відповідно до інструкцій у вхідних даних і виводить номери карт після перестановки по черзі зверху вниз.
Вхідні дані
- У $1$-му рядку записано число $n$ ($1 \le n \le 100$). Тобто кількість карт дорівнює $2n$.
- У $2$-му рядку записано кількість операцій $m$ ($1 \le m \le 1000$).
- У $m$ рядках з $3$-го по $m + 2$-й записано по $1$ цілому числу $k$ від $0$ до $2n-1$, які по черзі задають спосіб перестановки карт:
- Якщо $k = 0$, виконується каскадне тасування.
- Якщо $1 \le k \le 2n-1$, виконується зняття за числом $k$.
Вихідні дані
Вихідні дані повинні складатися з $2n$ рядків. У $1$-му рядку виведіть номер найверхньої карти після завершення перестановок, у $2$-му рядку — номер $2$-ї зверху карти після завершення перестановок, і так далі: в $i$-му рядку виведіть номер $i$-ї зверху карти.
Приклади
Вхідні дані 1
2 2 1 0
Вихідні дані 1
2 4 3 1
Вхідні дані 2
3 4 2 4 0 0
Вихідні дані 2
1 5 4 3 2 6