Заданы две перестановки \(a\) и \(b\), обе состоят из \(n\) элементов. Перестановка из \(n\) элементов — это такая последовательность целых чисел, что каждое число от \(1\) до \(n\) встречается ровно один раз.
Запрашивается два типа запросов к ним:
- \(1~l_a~r_a~l_b~r_b\) — посчитать количество значений, которые встречаются как в отрезке \([l_a; r_a]\) позиций перестановки \(a\), так и в отрезке \([l_b; r_b]\) позиций перестановки \(b\);
- \(2~x~y\) — поменять местами значения на позициях \(x\) и \(y\) перестановки \(b\).
Выведите ответы на все запросы первого типа.
Гарантируется, что во входных данных существует хотя бы один запрос первого типа.
Выходные данные
Выведите ответы на запросы первого типа, каждый ответ в отдельной строке — количество значений, которые встречаются и в отрезке \([l_a; r_a]\) позиций перестановки \(a\), и в отрезке \([l_b; r_b]\) позиций перестановки \(b\).
Примечание
Рассмотрим первый запрос первого примера. Значения на позициях \([1; 2]\) перестановки \(a\) — это \([5, 1]\), а значениях на позициях \([4; 5]\) перестановки \(b\) — это \([1, 4]\). Только значение \(1\) встречается в обоих отрезках.
После первой смены мест (второй запрос) перестановка \(b\) становится \([2, 1, 3, 5, 4, 6]\).
После второй смены мест (шестой запрос) перестановка \(b\) становится \([5, 1, 3, 2, 4, 6]\).
Примеры
| № | Входные данные | Выходные данные |
|
1
|
6 7 5 1 4 2 3 6 2 5 3 1 4 6 1 1 2 4 5 2 2 4 1 1 2 4 5 1 2 3 3 5 1 1 6 1 2 2 4 1 1 4 4 1 3
|
1
1
1
2
0
|