import
java.util.ArrayList;
import
java.util.Arrays;
import
java.util.HashMap;
import
java.util.List;
class
Main {
public
static
void
arrayManipulation(
int
n, List<Integer> arr,
int
q, List<List<Integer>> qarr) {
HashMap<Integer, Integer> mp =
new
HashMap<Integer, Integer>();
ArrayList<Integer> ans =
new
ArrayList<Integer>();
int
flg =
1
;
for
(
int
i =
0
; i < n; i++) {
mp.put(arr.get(i), i);
}
for
(
int
i =
0
; i < q; i++) {
List<Integer> a = qarr.get(i);
if
(a.get(
0
) ==
1
)
flg *= -
1
;
else
if
(a.get(
0
) ==
2
) {
int
x = a.get(
1
);
if
(flg == -
1
)
ans.add(n - mp.get(x) -
1
);
else
ans.add(mp.get(x));
}
else
{
int
x = a.get(
1
);
int
y = a.get(
2
);
int
x1 = a.get(
1
);
int
y1 = a.get(
2
);
if
(flg == -
1
) {
y = n - y -
1
;
x = n - x -
1
;
}
y = arr.get(y);
x = arr.get(x);
int
temp = arr.get(x1);
arr.set(x1, arr.get(y1));
arr.set(y1, temp);
mp.put(x, mp.get(y));
mp.put(y, temp);
}
}
for
(
int
x : ans) {
if
(x==-
1
) x =
0
;
System.out.print(x +
" "
);
}
}
public
static
void
main(String[] args) {
int
N =
6
;
List<Integer> arr =
new
ArrayList<Integer>(Arrays.asList(
6
,
33
,
9
,
22
,
45
,
4
));
int
Q =
5
;
List<List<Integer>> Queries =
new
ArrayList<List<Integer>>();
Queries.add(
new
ArrayList<Integer>(Arrays.asList(
1
)));
Queries.add(
new
ArrayList<Integer>(Arrays.asList(
3
,
0
,
4
)));
Queries.add(
new
ArrayList<Integer>(Arrays.asList(
2
,
33
)));
Queries.add(
new
ArrayList<Integer>(Arrays.asList(
1
)));
Queries.add(
new
ArrayList<Integer>(Arrays.asList(
2
,
9
)));
arrayManipulation(N, arr, Q, Queries);
}
}