#include #define rep(i,n) for(int i=0;i<(n);++i) using namespace std; using ll = long long; #include using namespace atcoder; using S = pair; S op(S a, S b){ return min(a,b); } S e(){ return make_pair(1e9, -1); } int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int n,q; cin>>n>>q; vector> a(n); rep(i,n)cin>>a[i].first,a[i].second=i; segtree seg(a); rep(qi,q){ int t,l,r; cin>>t>>l>>r; l--;r--; if(t==1){ S a = seg.get(l); S b = seg.get(r); a.second=r; b.second=l; seg.set(l,b); seg.set(r,a); } if(t==2){ cout <