#include <bits/stdc++.h>
using namespace std;
//
const int mx = 1e5 + 5;
const int S = 320;
//
struct query
{
int l, r, id;
//
bool operator < (const query &other)
{
if (l / S != other.l / S)
return l < other.l;
return l / S & 1 ? r < other.r : r > other.r;
}
};
struct Fenwick_Tree
{
int bit[mx];
//
void update (int idx, int val)
{
if (idx == 0)
return;
for (; idx < mx; idx += idx & -idx)
bit[idx] += val;
}
int sum (int idx)
{
int res = 0;
//
for (; idx > 0; idx -= idx & -idx)
res += bit[idx];
return res;
}
int get (int l, int r)
{
return sum(r) - sum(l - 1);
}
};
//
int n, q, P[mx];
long long ans[mx];
query Q[mx];
Fenwick_Tree FT;
//
void calc (void)
{
int l = 0, r = 0;
long long res = 0;
//
for (int i = 1; i <= q; ++i)
{
while (l < Q[i].l)
{
FT.update(P[l], -1);
res -= FT.get(1, P[l]);
++l;
}
while (l > Q[i].l)
{
--l;
res += FT.get(1, P[l]);
FT.update(P[l], 1);
}
while (r < Q[i].r)
{
++r;
res += FT.get(P[r], n);
FT.update(P[r], 1);
}
while (r > Q[i].r)
{
FT.update(P[r], -1);
res -= FT.get(P[r], n);
--r;
}
ans[Q[i].id] = res;
}
}
//
void process (void)
{
cin >> n >> q;
for (int i = 1; i <= n; ++i)
cin >> P[i];
for (int i = 1; i <= q; ++i)
cin >> Q[i].l >> Q[i].r,
Q[i].id = i;
sort(Q + 1, Q + q + 1);
calc();
for (int i = 1; i <= q; ++i)
cout << ans[i] << '\n';
}
//
signed main (void)
{
ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
process();
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Ci8vCmNvbnN0IGludCBteCA9IDFlNSArIDU7CmNvbnN0IGludCBTID0gMzIwOwovLwpzdHJ1Y3QgcXVlcnkKewogICAgaW50IGwsIHIsIGlkOwogICAgLy8KICAgIGJvb2wgb3BlcmF0b3IgPCAoY29uc3QgcXVlcnkgJm90aGVyKQogICAgewogICAgICAgIGlmIChsIC8gUyAhPSBvdGhlci5sIC8gUykKICAgICAgICAgICAgcmV0dXJuIGwgPCBvdGhlci5sOwogICAgICAgIHJldHVybiBsIC8gUyAmIDEgPyByIDwgb3RoZXIuciA6IHIgPiBvdGhlci5yOwogICAgfQp9OwpzdHJ1Y3QgRmVud2lja19UcmVlCnsKICAgIGludCBiaXRbbXhdOwogICAgLy8KICAgIHZvaWQgdXBkYXRlIChpbnQgaWR4LCBpbnQgdmFsKQogICAgewogICAgICAgIGlmIChpZHggPT0gMCkKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIGZvciAoOyBpZHggPCBteDsgaWR4ICs9IGlkeCAmIC1pZHgpCiAgICAgICAgICAgIGJpdFtpZHhdICs9IHZhbDsKICAgIH0KICAgIGludCBzdW0gKGludCBpZHgpCiAgICB7CiAgICAgICAgaW50IHJlcyA9IDA7CiAgICAgICAgLy8KICAgICAgICBmb3IgKDsgaWR4ID4gMDsgaWR4IC09IGlkeCAmIC1pZHgpCiAgICAgICAgICAgIHJlcyArPSBiaXRbaWR4XTsKICAgICAgICByZXR1cm4gcmVzOwogICAgfQogICAgaW50IGdldCAoaW50IGwsIGludCByKQogICAgewogICAgICAgIHJldHVybiBzdW0ocikgLSBzdW0obCAtIDEpOwogICAgfQp9OwovLwppbnQgbiwgcSwgUFtteF07CmxvbmcgbG9uZyBhbnNbbXhdOwpxdWVyeSBRW214XTsKRmVud2lja19UcmVlIEZUOwovLwp2b2lkIGNhbGMgKHZvaWQpCnsKICAgIGludCBsID0gMCwgciA9IDA7Cglsb25nIGxvbmcgcmVzID0gMDsKICAgIC8vCiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBxOyArK2kpCiAgICB7CiAgICAgICAgd2hpbGUgKGwgPCBRW2ldLmwpCiAgICAgICAgewogICAgICAgICAgICBGVC51cGRhdGUoUFtsXSwgLTEpOwogICAgICAgICAgICByZXMgLT0gRlQuZ2V0KDEsIFBbbF0pOwogICAgICAgICAgICArK2w7CiAgICAgICAgfQogICAgICAgIHdoaWxlIChsID4gUVtpXS5sKQogICAgICAgIHsKICAgICAgICAgICAgLS1sOwogICAgICAgICAgICByZXMgKz0gRlQuZ2V0KDEsIFBbbF0pOwogICAgICAgICAgICBGVC51cGRhdGUoUFtsXSwgMSk7CiAgICAgICAgfQogICAgICAgIHdoaWxlIChyIDwgUVtpXS5yKQogICAgICAgIHsKICAgICAgICAgICAgKytyOwogICAgICAgICAgICByZXMgKz0gRlQuZ2V0KFBbcl0sIG4pOwogICAgICAgICAgICBGVC51cGRhdGUoUFtyXSwgMSk7CiAgICAgICAgfQogICAgICAgIHdoaWxlIChyID4gUVtpXS5yKQogICAgICAgIHsKICAgICAgICAgICAgRlQudXBkYXRlKFBbcl0sIC0xKTsKICAgICAgICAgICAgcmVzIC09IEZULmdldChQW3JdLCBuKTsKICAgICAgICAgICAgLS1yOwogICAgICAgIH0KICAgICAgICBhbnNbUVtpXS5pZF0gPSByZXM7CiAgICB9Cn0KLy8Kdm9pZCBwcm9jZXNzICh2b2lkKQp7CiAgICBjaW4gPj4gbiA+PiBxOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgKytpKQogICAgICAgIGNpbiA+PiBQW2ldOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gcTsgKytpKQogICAgICAgIGNpbiA+PiBRW2ldLmwgPj4gUVtpXS5yLAogICAgICAgIFFbaV0uaWQgPSBpOwoKICAgIHNvcnQoUSArIDEsIFEgKyBxICsgMSk7CiAgICBjYWxjKCk7CgogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gcTsgKytpKQogICAgICAgIGNvdXQgPDwgYW5zW2ldIDw8ICdcbic7Cn0KLy8Kc2lnbmVkIG1haW4gKHZvaWQpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpLCBjaW4udGllKG51bGxwdHIpLCBjb3V0LnRpZShudWxscHRyKTsKICAgIHByb2Nlc3MoKTsKfQ==