#include <bits/stdc++.h>
using namespace std;
int BLOCK,n,q,a[100001],temp[100001],tree[400001];
long long cans=0;
long long ans[100001];
void add(int node,int s,int e,int val)
{
if(s==e)
{
tree[node]++;
return;
}
int m = (s+e)/2;
if( val<=m)
add(2*node,s,m,val);
else
add(2*node+1,m+1,e,val);
tree[node] = tree[2*node]+tree[2*node+1];
return;
}
void del(int node,int s,int e,int val)
{
if(s==e)
{
tree[node]--;
return ;
}
int m = (s+e)/2;
if( val<=m)
del(2*node,s,m,val);
else
del(2*node+1,m+1,e,val);
tree[node] = tree[2*node]+tree[2*node+1];
return;
}
int query(int node,int s,int e,int l,int r)
{
if(e<l || r<s)
return 0;
if(s>=l && e<=r)
return tree[node];
int m =(s+e)/2;
return query(2*node,s,m,l,r)+query(2*node+1,m+1,e,l,r);
}
bool cmp(const pair< pair<int,int>,int> &a,const pair< pair<int,int>,int> &b)
{
int l1 = a.first.first/BLOCK;
int l2 = b.first.first/BLOCK;
if(l1 != l2)
return (l1<l2);
return (a.first.second < b.first.second);
}
int main()
{
scanf("%d %d",&n,&q);
BLOCK = static_cast<int>(sqrt(n));
for(int i=0;i<n;i++){
scanf("%d", &a[i]);
temp[i]=a[i];
}
sort(temp,temp+n);
for(int i=0;i<n;i++)
a[i]= lower_bound(temp,temp+n,a[i])-temp +1;
vector< pair< pair<int,int>,int> > qry;
for(int i=0;i<q;i++)
{
int l,r;
scanf("%d %d",&l,&r);
l--;
r--;
qry.push_back(make_pair(make_pair(l,r),i));
}
sort(qry.begin(),qry.end(),cmp);
int ml = 0,mr = -1;
cans=0;
for(int i=0;i<q;i++)
{
int l=qry[i].first.first,r=qry[i].first.second;
while(mr < r)
{
mr++;
if( a[mr] != n )
cans += query(1,1,n,a[mr]+1,n);
add(1,1,n,a[mr]);
}
while(ml > l)
{
ml--;
if(a[ml] != 1)
{
cans += query(1,1,n,1,a[ml]-1);
}
add(1,1,n,a[ml]);
}
while(mr > r)
{
if( a[mr] != n )
cans -= query(1,1,n,a[mr]+1,n);
del(1,1,n,a[mr]);
mr--;
}
while(ml < l)
{
if(a[ml] != 1)
{
cans -= query(1,1,n,1,a[ml]-1);
}
del(1,1,n,a[ml]);
ml++;
}
ans[qry[i].second]=cans;
}
for(int i=0;i<q;i++)
{
printf("%lld\n", ans[i]);
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBCTE9DSyxuLHEsYVsxMDAwMDFdLHRlbXBbMTAwMDAxXSx0cmVlWzQwMDAwMV07CmxvbmcgbG9uZyBjYW5zPTA7CmxvbmcgbG9uZyBhbnNbMTAwMDAxXTsKdm9pZCBhZGQoaW50IG5vZGUsaW50IHMsaW50IGUsaW50IHZhbCkKewogICAgaWYocz09ZSkKICAgIHsKICAgICAgICB0cmVlW25vZGVdKys7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgaW50IG0gPSAocytlKS8yOwoKICAgIGlmKCB2YWw8PW0pCiAgICAgICAgYWRkKDIqbm9kZSxzLG0sdmFsKTsKICAgIGVsc2UKICAgICAgICBhZGQoMipub2RlKzEsbSsxLGUsdmFsKTsKICAgIHRyZWVbbm9kZV0gPSB0cmVlWzIqbm9kZV0rdHJlZVsyKm5vZGUrMV07CiAgICByZXR1cm47Cn0Kdm9pZCBkZWwoaW50IG5vZGUsaW50IHMsaW50IGUsaW50IHZhbCkKewogICAgaWYocz09ZSkKICAgIHsKICAgICAgICB0cmVlW25vZGVdLS07CiAgICAgICAgcmV0dXJuIDsKICAgIH0KICAgIGludCBtID0gKHMrZSkvMjsKCiAgICBpZiggdmFsPD1tKQogICAgICAgIGRlbCgyKm5vZGUscyxtLHZhbCk7CiAgICBlbHNlCiAgICAgICAgZGVsKDIqbm9kZSsxLG0rMSxlLHZhbCk7CiAgICB0cmVlW25vZGVdID0gdHJlZVsyKm5vZGVdK3RyZWVbMipub2RlKzFdOwogICAgcmV0dXJuOwp9CmludCBxdWVyeShpbnQgbm9kZSxpbnQgcyxpbnQgZSxpbnQgbCxpbnQgcikKewogICAgaWYoZTxsIHx8IHI8cykKICAgIHJldHVybiAwOwoKICAgIGlmKHM+PWwgJiYgZTw9cikKICAgICAgICByZXR1cm4gdHJlZVtub2RlXTsKICAgIAogICAgaW50IG0gPShzK2UpLzI7CiAgICByZXR1cm4gcXVlcnkoMipub2RlLHMsbSxsLHIpK3F1ZXJ5KDIqbm9kZSsxLG0rMSxlLGwscik7Cn0KYm9vbCBjbXAoY29uc3QgcGFpcjwgcGFpcjxpbnQsaW50PixpbnQ+ICZhLGNvbnN0IHBhaXI8IHBhaXI8aW50LGludD4saW50PiAmYikKewogICAgaW50IGwxID0gYS5maXJzdC5maXJzdC9CTE9DSzsKICAgIGludCBsMiA9IGIuZmlyc3QuZmlyc3QvQkxPQ0s7CiAgICBpZihsMSAhPSBsMikKICAgICAgICByZXR1cm4gKGwxPGwyKTsKICAgIHJldHVybiAoYS5maXJzdC5zZWNvbmQgPCBiLmZpcnN0LnNlY29uZCk7Cn0KaW50IG1haW4oKQp7CiAgICBzY2FuZigiJWQgJWQiLCZuLCZxKTsKICAgIEJMT0NLID0gc3RhdGljX2Nhc3Q8aW50PihzcXJ0KG4pKTsKICAgIGZvcihpbnQgaT0wO2k8bjtpKyspewogICAgICAgIHNjYW5mKCIlZCIsICZhW2ldKTsKICAgICAgICB0ZW1wW2ldPWFbaV07CiAgICB9CiAgICBzb3J0KHRlbXAsdGVtcCtuKTsKICAgIGZvcihpbnQgaT0wO2k8bjtpKyspCiAgICAgICAgYVtpXT0gbG93ZXJfYm91bmQodGVtcCx0ZW1wK24sYVtpXSktdGVtcCArMTsKICAgIHZlY3RvcjwgcGFpcjwgcGFpcjxpbnQsaW50PixpbnQ+ID4gcXJ5OwogICAgZm9yKGludCBpPTA7aTxxO2krKykKICAgIHsKICAgICAgICBpbnQgbCxyOwogICAgICAgIHNjYW5mKCIlZCAlZCIsJmwsJnIpOwogICAgICAgIGwtLTsKICAgICAgICByLS07CiAgICAgICAgcXJ5LnB1c2hfYmFjayhtYWtlX3BhaXIobWFrZV9wYWlyKGwsciksaSkpOwogICAgfQogICAgc29ydChxcnkuYmVnaW4oKSxxcnkuZW5kKCksY21wKTsKCiAgICBpbnQgbWwgPSAwLG1yID0gLTE7CiAgICBjYW5zPTA7CiAgICBmb3IoaW50IGk9MDtpPHE7aSsrKQogICAgewogICAgICAgIGludCBsPXFyeVtpXS5maXJzdC5maXJzdCxyPXFyeVtpXS5maXJzdC5zZWNvbmQ7CiAgICAgICAgd2hpbGUobXIgPCByKQogICAgICAgIHsKICAgICAgICAgICAgbXIrKzsKICAgICAgICAgICAgaWYoIGFbbXJdICE9IG4gKQogICAgICAgICAgICAgICAgY2FucyArPSBxdWVyeSgxLDEsbixhW21yXSsxLG4pOwogICAgICAgICAgICBhZGQoMSwxLG4sYVttcl0pOyAKICAgICAgICB9CiAgICAgICAgd2hpbGUobWwgPiBsKQogICAgICAgIHsKICAgICAgICAgICAgbWwtLTsKICAgICAgICAgICAgaWYoYVttbF0gIT0gMSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY2FucyArPSBxdWVyeSgxLDEsbiwxLGFbbWxdLTEpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGFkZCgxLDEsbixhW21sXSk7CiAgICAgICAgfQogICAgICAgIHdoaWxlKG1yID4gcikKICAgICAgICB7CiAgICAgICAgICAgIGlmKCBhW21yXSAhPSBuICkKICAgICAgICAgICAgICAgIGNhbnMgLT0gcXVlcnkoMSwxLG4sYVttcl0rMSxuKTsKICAgICAgICAgICAgZGVsKDEsMSxuLGFbbXJdKTsKICAgICAgICAgICAgbXItLTsKICAgICAgICB9CiAgICAgICAgd2hpbGUobWwgPCBsKQogICAgICAgIHsgICAgICAgICAgICAKICAgICAgICAgICAgaWYoYVttbF0gIT0gMSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY2FucyAtPSBxdWVyeSgxLDEsbiwxLGFbbWxdLTEpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGRlbCgxLDEsbixhW21sXSk7CiAgICAgICAgICAgIG1sKys7CiAgICAgICAgfQogICAgICAgIGFuc1txcnlbaV0uc2Vjb25kXT1jYW5zOwogICAgfQogICAgZm9yKGludCBpPTA7aTxxO2krKykKICAgIHsKICAgICAgICBwcmludGYoIiVsbGRcbiIsIGFuc1tpXSk7CiAgICB9CiAgICByZXR1cm4gMDsKfQ==