Problem:
Problem C: Round And Round

Problem

長さ$N$の数列$A=${$a_{1},a_{2},a_{3},...,a_{n}$}が与えられる。

$a_{i}$ ($i=1,2,3,...,n$)は、$i$で初期化されているものとする。

以下の二種類のクエリを合計$Q$回処理せよ。

数列$A$の先頭から$k$番目の要素の値を出力する。

数列$A$の先頭から$k$と$k+1$番目を境界に二つの数列をスワップする。

詳しくはサンプル入出力を参考にせよ。

Input

入力は以下の形式で与えられる。

$N$ $Q$
$query_1$
$query_2$
...
$query_Q$

各クエリは以下の二種類のいずれかの形式で与えられる。

クエリ$0$

$0$ $k$

数列$A$の先頭から$k$番目の要素の値を出力する。

クエリ$1$

$1$ $k$

数列$A$の先頭から$k$と$k+1$番目を境界に二つの数列をスワップする。

入力はすべて整数で与えられる。

$1$行目に$N$, $Q$が空白区切りで与えられる。

$2$行目以降の$Q$行にクエリが改行区切りで与えられる。

各クエリ内の数値は全て空白区切りである。

Constraints

入力は以下の条件を満たす。

$2 \leq N \leq 10^9 $

$1 \leq Q \leq 10^5 $

各クエリについて、入力は以下の条件を満たす。

クエリ$0$

$1 \leq k \leq N $

クエリ$1$

$1 \leq k \leq N-1 $

Output

各クエリ$1$に対し値を一行に出力せよ。

Sample Input 1

5 4
1 2
0 2
1 1
0 3

Sample Output 1

4
1

長さ$5$の数列$A=[1,2,3,4,5]$が与えられる

$1$番目のクエリで $[1,2,3,4,5]$ -> $[1,2] [3,4,5]$ -> $[3,4,5] [1,2]$ -> $[3,4,5,1,2]$ と数列が変化する。

$2$番目のクエリで先頭から$2$番目の要素の値である$4$を出力する。

$3$番目のクエリで $[3,4,5,1,2]$ -> $[3] [4,5,1,2]$ -> $[4,5,1,2] [3]$ -> $[4,5,1,2,3]$ と数列が変化する。

$4$番目のクエリで先頭から$3$番目の要素の値である$1$を出力する。

Sample Input 2

4 4
1 2
1 1
0 1
0 4

Sample Output 2

4
3

Sample Input 3

10 6
1 1
0 1
1 9
0 5
1 1
0 10

Sample Output 3

2
5
1

Solution in Ruby (judge verdict: Accepted)

n, q = gets.chomp.split.map(&:to_i)
start = 0
q.times{
    a, b = gets.chomp.split.map(&:to_i)
    case a
    when 0
        x = (b + start) % n
        x = n if x == 0
        puts x
    when 1
        start = (b + start) % n
    end
}