//
// Light Oj - 1082 - Array Queries
//  too lazy to RTE :(
 
 
#include <bits/stdc++.h>
using namespace std;
#define sc(a) scanf("%d" , &a)
 
const int MAX = 1e5 + 55;
int t, n, q, l, r;
int tree[4*MAX] , a[4*MAX];
 
void build(int p , int st , int en){
    if(st == en){
        tree[p] = a[st];
        return;
    }
    int md = (st+en)>>1;
    build(p * 2 , st , md);
    build(p*2+1 , md + 1 , en);
    tree[p] = min(tree[p*2] , tree[p*2+1]);
}
 
int qwr(int p , int st ,int en){
    if(st >= l && en <= r)
        return tree[p];
    if(st > r || en < l)
        return 1000000000;
    int md = (st+en)>>1;
    return min(qwr(p*2 , st , md) , qwr(p*2+1 , md + 1 , en));
}
 
int main()
{
 
   
    //freopen("input.txt", "rt", stdin);
    //freopen("output.txt", "wt", stdout);
 
    sc(t);
    for (int ti=1; ti<=t; ti++)
    {
        sc(n);sc(q);
 
        for (int i=0; i<n; i++)
            sc(a[i]);
 
        build(1 , 0 , n - 1);
 
        cout << "Case " << ti << ":\n";
        for (int i=0; i<q; i++)
        {
            sc(l);sc(r);
            --l;--r;
            cout << qwr (1 , 0 , n - 1) << "\n";
        }
    }
 
    return 0;
}