Имеется $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