#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define sp ios_base::sync_with_stdio(false),cin.tie(NULL),cout.tie(NULL)
#define cps CLOCKS_PER_SEC
#define mod (ll)1000000007
#define f first
#define s second
#define debug1(x) cout<<x<<"\n"
#define debug2(x,y) cout<<x<<" "<<y<<"\n"
#define debug3(x,y,z) cout<<x<<" "<<y<<" "<<z<<"\n"
#define nl cout<<"\n";
#define pq priority_queue
#define inf 0x3f3f3f3f
#define test cout<<"abcd\n";
#define pi pair<int,int>
#define pii pair<int,pi>
#define pb push_back
#define mxn 200005
int a[mxn],b[mxn],block,n;
ll ans[mxn],bit[mxn];
map<int,int> mp;
struct node{
int l,r,id;
};
bool compare(node p,node q){
int l=p.l/block;
int r=q.l/block;
if(l==r)
return p.r<q.r;
return l<r;
}
ll read(int x){
ll sum=0;
while(x>0){
sum+=bit[x];
x-=x&(-x);
}
return sum;}
void update(int x,ll val){
while(x<=n){
bit[x]+=val;
x+=(x&(-x));
}
}
int main(){
sp;
int qq;
cin>>n>>qq;
block=267;
for(int i=1; i<=n; ++i){
cin>>a[i];
mp[a[i]];
}
int x=0;
for(auto &it:mp)
it.s=++x;
for(int i=1; i<=n; ++i)
a[i]=mp[a[i]];
node q[qq+1];
int l,r,id;
for(int i=1; i<=qq; ++i){
cin>>q[i].l>>q[i].r;
q[i].id=i;
}
sort(q+1,q+qq+1,compare);
int curl=q[1].l,curr=curl-1;
ll z=0;
for(int i=1; i<=qq; ++i){
l=q[i].l;
r=q[i].r;
id=q[i].id;
while(curr<r){
++curr;
z+=read(n)-read(a[curr]);
update(a[curr],1);
}
while(curl>l){
--curl;
z+=read(a[curl]-1);
update(a[curl],1);
}
while(curl<l){
z-=read(a[curl]-1);
update(a[curl],-1);
++curl;
}
while(curr>r){
z-=read(n)-read(a[curr]);
update(a[curr],-1);
--curr;
}
ans[id]=z;
}
for(int i=1; i<=qq; ++i)
cout<<ans[i]<<"\n";
return 0;}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgc3AgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSksY2luLnRpZShOVUxMKSxjb3V0LnRpZShOVUxMKQojZGVmaW5lIGNwcyBDTE9DS1NfUEVSX1NFQwojZGVmaW5lIG1vZCAobGwpMTAwMDAwMDAwNwojZGVmaW5lIGYgZmlyc3QKI2RlZmluZSBzIHNlY29uZAojZGVmaW5lIGRlYnVnMSh4KSBjb3V0PDx4PDwiXG4iCiNkZWZpbmUgZGVidWcyKHgseSkgY291dDw8eDw8IiAiPDx5PDwiXG4iCiNkZWZpbmUgZGVidWczKHgseSx6KSBjb3V0PDx4PDwiICI8PHk8PCIgIjw8ejw8IlxuIgojZGVmaW5lIG5sIGNvdXQ8PCJcbiI7CiNkZWZpbmUgcHEgcHJpb3JpdHlfcXVldWUKI2RlZmluZSBpbmYgMHgzZjNmM2YzZgojZGVmaW5lIHRlc3QgY291dDw8ImFiY2RcbiI7CiNkZWZpbmUgcGkgcGFpcjxpbnQsaW50PgojZGVmaW5lIHBpaSBwYWlyPGludCxwaT4KI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBteG4gMjAwMDA1CmludCBhW214bl0sYltteG5dLGJsb2NrLG47CmxsIGFuc1tteG5dLGJpdFtteG5dOwptYXA8aW50LGludD4gbXA7CgpzdHJ1Y3Qgbm9kZXsKaW50IGwscixpZDsKfTsKCmJvb2wgY29tcGFyZShub2RlIHAsbm9kZSBxKXsKaW50IGw9cC5sL2Jsb2NrOwppbnQgcj1xLmwvYmxvY2s7CmlmKGw9PXIpCiAgICByZXR1cm4gcC5yPHEucjsKcmV0dXJuIGw8cjsKfQoKbGwgcmVhZChpbnQgeCl7CiAgICBsbCBzdW09MDsKd2hpbGUoeD4wKXsKICAgICAgICBzdW0rPWJpdFt4XTsKeC09eCYoLXgpOwp9CnJldHVybiBzdW07fQoKdm9pZCB1cGRhdGUoaW50IHgsbGwgdmFsKXsKd2hpbGUoeDw9bil7CiAgICBiaXRbeF0rPXZhbDsKICAgIHgrPSh4JigteCkpOwp9Cn0KCmludCBtYWluKCl7CnNwOwppbnQgcXE7CmNpbj4+bj4+cXE7CmJsb2NrPTI2NzsKZm9yKGludCBpPTE7IGk8PW47ICsraSl7CiAgICBjaW4+PmFbaV07CiAgICBtcFthW2ldXTsKfQppbnQgeD0wOwpmb3IoYXV0byAmaXQ6bXApCml0LnM9Kyt4Owpmb3IoaW50IGk9MTsgaTw9bjsgKytpKQogICAgYVtpXT1tcFthW2ldXTsKbm9kZSBxW3FxKzFdOwppbnQgbCxyLGlkOwpmb3IoaW50IGk9MTsgaTw9cXE7ICsraSl7CiAgICBjaW4+PnFbaV0ubD4+cVtpXS5yOwpxW2ldLmlkPWk7Cn0Kc29ydChxKzEscStxcSsxLGNvbXBhcmUpOwppbnQgY3VybD1xWzFdLmwsY3Vycj1jdXJsLTE7CmxsIHo9MDsKZm9yKGludCBpPTE7IGk8PXFxOyArK2kpewogICAgbD1xW2ldLmw7CiAgICByPXFbaV0ucjsKICAgIGlkPXFbaV0uaWQ7CiAgICB3aGlsZShjdXJyPHIpewogICAgICAgICsrY3VycjsKICAgICAgICB6Kz1yZWFkKG4pLXJlYWQoYVtjdXJyXSk7CiAgICAgICAgdXBkYXRlKGFbY3Vycl0sMSk7CiAgICB9CiAgICB3aGlsZShjdXJsPmwpewogICAgICAgIC0tY3VybDsKICAgICAgICB6Kz1yZWFkKGFbY3VybF0tMSk7CiAgICAgICAgdXBkYXRlKGFbY3VybF0sMSk7CiAgICB9CiAgICB3aGlsZShjdXJsPGwpewogICAgICAgIHotPXJlYWQoYVtjdXJsXS0xKTsKICAgICAgICB1cGRhdGUoYVtjdXJsXSwtMSk7CiAgICAgICAgKytjdXJsOwogICAgfQogICAgd2hpbGUoY3Vycj5yKXsKICAgICAgICB6LT1yZWFkKG4pLXJlYWQoYVtjdXJyXSk7CiAgICAgICAgdXBkYXRlKGFbY3Vycl0sLTEpOwogICAgICAgIC0tY3VycjsKICAgIH0KICAgIGFuc1tpZF09ejsKfQpmb3IoaW50IGk9MTsgaTw9cXE7ICsraSkKICAgIGNvdXQ8PGFuc1tpXTw8IlxuIjsKCnJldHVybiAwO30K