#include<bits/stdc++.h>
using namespace std;
void build(int* tree,int i,int tl,int tr,int* a)
{
if(tl==tr)
{
tree[i]=a[tl];
return ;
}
int m=(tl+tr)/2; /// tl=0 tr=7 root m=3
/// left: tl=0 tr=m=3
build(tree,2*i+1,tl,m,a);
/// right: tl=m+1=4 tr=7
build(tree,2*i+2,m+1,tr,a);
tree[i]=min(tree[2*i+1],tree[2*i+2]);
}
int query(int* tree,int i,int tl,int tr,int l,int r)
{
/// full overlap
if(tl>=l && tr<=r)
{
return tree[i];
}
/// no overlap
if(r<tl || l>tr)
{
return INT_MAX;
}
/// partial overlap
int m=(tl+tr)/2;
int left=query(tree,2*i+1,tl,m,l,r);
int right=query(tree,2*i+2,m+1,tr,l,r);
return min(left,right);
}
int main()
{
int n; cin >> n;
int q; cin >> q;
int a[n];
for(int i=0;i<n;i++) cin >> a[i];
int tree[4*n];
build(tree,0,0,n-1,a);
while(q--)
{
int l,r; cin >> l >> r;
l--,r--;
int ans=query(tree,0,0,n-1,l,r);
cout << ans << endl;
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIGJ1aWxkKGludCogdHJlZSxpbnQgaSxpbnQgdGwsaW50IHRyLGludCogYSkKewogICAgaWYodGw9PXRyKQogICAgewogICAgICAgIHRyZWVbaV09YVt0bF07CiAgICAgICAgcmV0dXJuIDsKICAgIH0KICAgIGludCBtPSh0bCt0cikvMjsgLy8vIHRsPTAgdHI9NyByb290IG09MwoKICAgIC8vLyBsZWZ0OiB0bD0wIHRyPW09MwogICBidWlsZCh0cmVlLDIqaSsxLHRsLG0sYSk7CgogICAgLy8vIHJpZ2h0OiB0bD1tKzE9NCB0cj03CiAgICBidWlsZCh0cmVlLDIqaSsyLG0rMSx0cixhKTsKCiAgICB0cmVlW2ldPW1pbih0cmVlWzIqaSsxXSx0cmVlWzIqaSsyXSk7CgoKCn0KaW50IHF1ZXJ5KGludCogdHJlZSxpbnQgaSxpbnQgdGwsaW50IHRyLGludCBsLGludCByKQp7CiAgICAvLy8gZnVsbCBvdmVybGFwCiAgICBpZih0bD49bCAmJiB0cjw9cikKICAgIHsKICAgICAgICByZXR1cm4gdHJlZVtpXTsKICAgIH0KCiAgICAvLy8gbm8gb3ZlcmxhcAogICAgaWYocjx0bCB8fCBsPnRyKQogICAgewogICAgICAgIHJldHVybiBJTlRfTUFYOwogICAgfQoKICAgIC8vLyBwYXJ0aWFsIG92ZXJsYXAKICAgIGludCBtPSh0bCt0cikvMjsKICAgIGludCBsZWZ0PXF1ZXJ5KHRyZWUsMippKzEsdGwsbSxsLHIpOwogICAgaW50IHJpZ2h0PXF1ZXJ5KHRyZWUsMippKzIsbSsxLHRyLGwscik7CiAgICByZXR1cm4gbWluKGxlZnQscmlnaHQpOwp9CmludCBtYWluKCkKewogICAgaW50IG47IGNpbiA+PiBuOwogICAgaW50IHE7IGNpbiA+PiBxOwogICAgaW50IGFbbl07CiAgICBmb3IoaW50IGk9MDtpPG47aSsrKSBjaW4gPj4gYVtpXTsKCiAgICBpbnQgdHJlZVs0Km5dOwogICAgYnVpbGQodHJlZSwwLDAsbi0xLGEpOwoKICAgIAogICAgd2hpbGUocS0tKQogICAgewoKICAgICAgICAgICAgaW50IGwscjsgY2luID4+IGwgPj4gcjsKICAgICAgICAgICAgbC0tLHItLTsKICAgICAgICAgICAgaW50IGFucz1xdWVyeSh0cmVlLDAsMCxuLTEsbCxyKTsKICAgICAgICAgICAgY291dCA8PCBhbnMgPDwgZW5kbDsKCgogICAgfQoKICAgIHJldHVybiAwOwp9Cg==