#include <iostream>
using namespace std;
int a[500050];
int st_min[20][500050];
int st_max[20][500050];
int log_table[500050];
int main() {
    int n,q;cin>>n>>q;
    for(int i=1;i<=n;++i)cin>>a[i];
    log_table[1]=0;
    for(int i=2;i<=n;++i)log_table[i]=log_table[i>>1]+1;
    for(int i=1;i<=n;++i){
        st_min[0][i]=a[i];
        st_max[0][i]=a[i];
    }
    for(int k=1;(1<<k)<=n;++k){
        for(int i=1;i+(1<<k)-1<=n;++i){
            st_min[k][i]=min(st_min[k-1][i],st_min[k-1][i+(1<<(k-1))]);
            st_max[k][i]=max(st_max[k-1][i],st_max[k-1][i+(1<<(k-1))]);
        }
    }
    while(q--){
        int op;cin>>op;
        int l,r;cin>>l>>r;
        if(op==1){
            int k=log_table[r-l+1];
            cout<<min(st_min[k][l],st_min[k][r-(1<<k)+1])<<endl;
        }else{
            int k=log_table[r-l+1];
            cout<<max(st_max[k][l],st_max[k][r-(1<<k)+1])<<endl;
        }
    }
}
// 64 位输出请用 printf("%lld")