Олимпиадный тренинг

Задача 44989. coup


Задача

Темы: Деревья

Given an array. We need to learn how to handle two types of requests.

* 1 L R - flip segment [L,R]

* 2 L R - find the minimum on the segment [L,R]


Input

The first line of the file contains two numbers nm. (1<=n,m<=105) The second line contains n numbers ni (1<=ai<=109) - source array. The remaining m lines contain queries in the format described in the condition. The numbers LR are restricted to (1<=L<=R<=n).


Output

For each request of type 2, print the answer to it in the input file on a separate line.

 
Examples
# Input Output
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
3
2
2
2