Problems
Переворот
Переворот
Дан массив. Нужно научиться обрабатывать два типа запросов:
1 L R - перевернуть отрезок [L, R];
2 L R - найти минимум на отрезке [L, R].
Input data
Первая строка входного файла содержит два числа n, m (1 ≤ n, m ≤ 10^5). Во второй строке находится n чисел a_i(1 ≤ a_i ≤ 10^9) - исходный массив. Остальные m строк содержат запросы, в формате, описанном выше. Для чисел L,R выполняется ограничение (1 ≤ L, R ≤ n).
Output data
На каждый запрос типа 2 выведите ответ на него в отдельной строке.
Examples
Input example #1
10 7 5 3 2 3 12 6 7 5 10 12 2 4 9 1 4 6 2 1 8 1 1 8 1 8 9 2 1 7 2 3 6
Output example #1
3 2 2 2