/*Recursive Segment tree for competitive programing*/

#include <iostream>
#include <vector>

using namespace std;

struct Segment{
   vector <long long> st;
   vector <long long> dt;
   int sz;
   void build(int p , int l, int r){
      if(l==r){
         st[p] = l;
      }
      else{
         int mid = (l+r)>>1;
         int left = p<<1;
         build(left, l, mid);
         build(left+1, mid + 1 , r);
         int p1 = st[left] , p2 = st[left+1];
         st[p] = (dt[p1] <= dt[p2]) ? p1 : p2;
      }
   }

   Segment(const vector<long long> &data){
      sz = data.size();
      st.assign(3*sz,0);
      dt = data;
      build(1,0,sz-1);
   }

   int query(int p, int l, int r, int &i, int &j){
      if(i>r || j< l)
         return -1;
      else if(i<= l && j>=r){
         return st[p];
      }
      else{
         int left = p<<1;
         int mid = (l+r)>>1;
         int lf = query(left, l, mid, i, j);
         int rg = query(left + 1, mid+1, r, i, j);
         if(lf == -1) return rg;
         if(rg == -1) return lf;
         return dt[lf] < dt[rg] ? lf : rg;
      }
   }

   int update(int p, int l, int r, int id, int v){
      if(l==r)
         return st[p] = l;
      else{
         int rg = (l+r)/2 +1;
         rg <= id ? update(p*2+1, rg, r,id, v) : update(p*2, l, (l+r)/2,id, v);
         st[p] = dt[st[p*2]] < dt[st[p*2+1]] ? st[p*2] : st[p*2+1];
      }
   }

   void update(int p, int v){
      dt[p] = v;
      update(1,0,sz-1,p,v);
   }

   long long query(int &i, int &j){
      int ans = query(1, 0, sz-1, i, j);
      return dt[ans];
   }
};

int main(){
   //std::ios::sync_with_stdio(false);

   int t,nl =0;
   scanf("%d",&t);
   while(t--){
      //cout<<"Scenario #"<<++nl<<":\n";
      printf("Scenario #%d:\n",++nl);
      vector<long long> data(100005);
      int n,q,i,j;
      scanf("%d",&n);

      for(int i=0; i<n; i++)
         scanf("%lld",&data[i]);
         //cin>>data[i];


      Segment sg(data);

      //cin>>q;
      scanf("%d",&q);

      while(q--){
         //cin>>i>>j;
         scanf("%d%d",&i,&j);
         //cout<<sg.query(i,j)<<"\n";
         printf("%lld\n",sg.query(i,j));
      }
   }
}
