I. Задача о массиве
ограничение по времени на тест
4.5 секунд
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Это интерактивная задача.

Профессор Р. вновь занимается исследованием массивов. Сегодня ему попался массив, состоящий из $$$N$$$ чисел. Отличительной особенностью этого массива является то, что он состоит только из чисел $$$0, 1, 2$$$. Профессор решил сыграть со своим внуком в следующую игру. Внук должен отсортировать массив по неубыванию, при этом он может задавать вопросы $$$2$$$ видов:

  1. узнать, чему равен элемент, находящийся на $$$i$$$-м месте;
  2. поменять местами элементы, стоящие на $$$i$$$-м и $$$j$$$-м местах соответственно.

Однако задача оказалось не такой простой: внук может задать не более $$$2N$$$ вопросов. Так как внук умеет сортировать массивы только пузырьковой сортировкой, он просит вас помочь решить ему эту задачу, написав программу, которая упорядочит массив с помощью указанных операций не более чем за $$$2N$$$ запросов.

Протокол взаимодействия

Сначала на вход вашей программе подаётся число $$$N$$$ $$$(1 \le N \le 2 \cdot 10^5)$$$ – количество элементов в массиве.

После этого ваша программа может делать запросы:

  1. Для того, чтобы узнать, чему равен элемент, находящийся на $$$i$$$-м месте $$$(1 \le i \le N)$$$, нужно вывести в выходной поток в отдельной строке «get $$$i$$$»
  2. Для того, чтобы поменять местами элементы, стоящие на $$$i$$$-м и $$$j$$$-м местах, нужно вывести в выходной поток в отдельной строке «swap $$$i~j$$$»

В любом запросе числа $$$i$$$ и $$$j$$$ должны лежать в пределах от $$$1$$$ до $$$N$$$.

Отсортировав массив, следует вывести строку «Sorted!» и завершить программу.

Если ваша программа сделает более $$$2N$$$ запросов или задаст некорректный запрос (например, запросите обмен элементов, номера которых не лежат в пределах от $$$1$$$ до $$$N$$$), она получит любой вердикт, отличный от «Accepted».

После каждого действия вашей программы выводите символ перевода строки. После вывода очередного запроса обязательно используйте функции очистки потока, чтобы часть вашего вывода не осталась в каком-нибудь буфере. Например, на С++ надо использовать функцию «fflush(stdout)», на Java и Kotlin вызов «System.out.flush()» и «stdout.flush()» для языка Python.

Пример
Входные данные
2

1

0
Выходные данные
get 1

get 2

swap 1 2

Sorted!