//与えられたn個の数列において各数列内での最大最小を求める
#include<iostream>
#include<algorithm>
#include<vector>

int main (){
    int a,b,e,n,m,com;
    std::cin>>n;
    std::vector<int> vec{};
    
    
    for(int i=0;i<n;i++){
        std::cin>>a;
        vec.push_back(a);
    }

    std::cin>>m;
    for(int j=0;j<m;j++){
        std::cin>>com>>b>>e;
        auto t = std::minmax_element(&vec[b],&vec[e]);        
        switch(com){
            case 0:{
                std::cout<<*t.first<<std::endl;
                break;
            }
            case 1:{
                std::cout<<*t.second<<std::endl;
                break;
            }
        }
    }

    return 0;
}

