#define PROBLEM "https://judge.yosupo.jp/problem/staticrmq"
#include"../template.h"
#include"RMQ/RMQ.h"voidsolve(){intn,q;cin>>n>>q;vector<int>a(n+1);for(inti=1;i<=n;i++){cin>>a[i];}RMQ<int>rmq(n);rmq.preprocess(a);while(q--){intl,r;cin>>l>>r;cout<<rmq.queryMin(l+1,r)<<'\n';}}
#line 1 "DataStructure/Static_RMQ.test.cpp"
#define PROBLEM "https://judge.yosupo.jp/problem/staticrmq"
#line 2 "template.h"
#include<bits/stdc++.h>usingnamespacestd;#define ll long long
#define MOD (ll)(1e9+7)
#define all(x) (x).begin(),(x).end()
#define unique(x) x.erase(unique(all(x)), x.end())
#define INF32 ((1ull<<31)-1)
#define INF64 ((1ull<<63)-1)
#define inf (ll)1e18
#define vi vector<int>
#define pii pair<int, int>
#define pll pair<ll, ll>
#define fi first
#define se second
constintmod=998244353;voidsolve();intmain(){ios_base::sync_with_stdio(false);cin.tie(NULL);// cin.exceptions(cin.failbit);// int t; cin >> t;// while(t--)solve();cerr<<"\nTime run: "<<1000*clock()/CLOCKS_PER_SEC<<"ms"<<'\n';return0;}#line 2 "DataStructure/RMQ/RMQ.h"
template<typenameT>structRMQ{intn;vector<vector<T>>mn,mx,sum;RMQ(){}RMQ(int_n):n(_n){mn=mx=sum=vector<vector<T>>(20,vector<T>(_n+1));}voidpreprocess(vector<T>&a){for(inti=1;i<=n;i++){mn[0][i]=mx[0][i]=sum[0][i]=a[i];}for(inti=1;i<20;i++){for(intj=1;j+(1<<i)-1<=n;j++){mn[i][j]=min(mn[i-1][j],mn[i-1][j+(1<<(i-1))]);mx[i][j]=max(mx[i-1][j],mx[i-1][j+(1<<(i-1))]);sum[i][j]=sum[i-1][j]+sum[i-1][j+(1<<(i-1))];}}}TqueryMin(intl,intr){intk=__lg(r-l+1);returnmin(mn[k][l],mn[k][r-(1<<k)+1]);}TqueryMax(intl,intr){intk=__lg(r-l+1);returnmax(mx[k][l],mx[k][r-(1<<k)+1]);}TquerySum(intl,intr){intlen=r-l+1;Tans=0;for(inti=0;(1<<i)<=len;i++){if(len>>i&1){ans+=sum[i][l];l+=(1<<i);}}returnans;}};#line 5 "DataStructure/Static_RMQ.test.cpp"
voidsolve(){intn,q;cin>>n>>q;vector<int>a(n+1);for(inti=1;i<=n;i++){cin>>a[i];}RMQ<int>rmq(n);rmq.preprocess(a);while(q--){intl,r;cin>>l>>r;cout<<rmq.queryMin(l+1,r)<<'\n';}}