1 #include<bits/stdc++.h>
2 using namespace std;
3 typedef long long ll;
4 const ll N=100100;
5 ll minn[N<<2];
6 ll a[N];
7 ll n,m;
8 ll cnt;
9 void build(ll rt,ll l,ll r){
10 if(l==r){
11 ++cnt;
12 minn[rt]=a[cnt];
13 //return ;
14 }else {
15 ll mid = (l+r)>>1;
16 build(rt*2,l,mid);
17 build(rt*2+1,mid+1,r);
18 minn[rt]=min(minn[rt*2],minn[rt*2+1]);
19 }
20 //return ;
21 }
22
23 ll get(ll rt,ll l,ll r,ll zuo,ll you){
24 ll ans=1e8;
25 if(zuo<=l&&you>=r){
26 return ans=minn[rt];
27 } else {
28 ll mid = (l+r)>>1;
29 if(zuo<=mid){
30 ans=min(ans,get(rt*2,l,mid,zuo,you));
31 }
32 if(you>mid){
33 ans=min(ans,get(rt*2+1,mid+1,r,zuo,you));
34 }
35 }
36 return ans;
37 }
38
39 int main(){
40 scanf("%lld%lld",&n,&m);
41 for(ll i=1;i<=n;i++){
42 scanf("%lld",&a[i]);
43 }
44 build(1,1,n);
45 for(ll i=1;i<=m;i++){
46 ll a,b;
47 scanf("%lld%lld",&a,&b);
48 printf("%lld ",get(1,1,n,a,b));
49 }
50 return 0;
51 }