#include #include using namespace std; pair op(pair a, pair b){ return min(a, b); } pair e(){ return make_pair(1e9, 0); } int main(){ int N, Q; cin >> N >> Q; vector a(N); for (int i = 0; i < N; i++){ cin >> a[i]; } atcoder::segtree, op, e> seg(N); for (int i = 0; i < N; i++){ seg.set(i, make_pair(a[i], i)); } while (Q--){ int t, l, r; cin >> t >> l >> r; l--; r--; if (t == 1){ int L = seg.get(l).first, R = seg.get(r).first; seg.set(l, make_pair(R, l)); seg.set(r, make_pair(L, r)); } if (t == 2){ cout << seg.prod(l, r + 1).second + 1 << endl; } } }