#include <bits/stdc++.h>
#define ll long long
#define ft first
#define sc second
#define el '\n'
#define FOR(i,a,b) for (int i = (a), _b = (b); i <= _b; i ++)
#define FORD(i,b,a) for (int i = (b), _a = (a); i >= _a; i --)
#define boost ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define file(name) freopen(name".inp", "r", stdin); freopen(name".out", "w", stdout)
#define pb push_back
#define all(x) (x).begin(),(x).end()
using namespace std;
const ll N = 2e5;
ll n, q, block = 0, sum = 0, a[N + 1], Ans[N + 1];
ll linkLeft[N + 1], linkRight[N + 1], linkCheck[N + 1];
vector<pair<ll, ll>> b;
struct QUERY {
ll x, y, z;
};
vector<QUERY> query;
struct HIS {
ll x, y, z, t;
};
stack<HIS> history;
ll binaryL(ll tg) {
ll l = 1, r = b.size() - 1, ans = -1;
while(l <= r) {
ll mid = (l + r) >> 1;
if(b[mid].ft >= tg) {
r = mid - 1;
ans = mid;
} else {
l = mid + 1;
}
}
return ans;
}
ll binaryR(ll tg) {
ll l = 1, r = b.size() - 1, ans = -1;
while(l <= r) {
ll mid = (l + r) >> 1;
if(b[mid].ft <= tg) {
l = mid + 1;
ans = mid;
} else {
r = mid - 1;
}
}
return ans;
}
void read() {
cin >> n >> q;
b.pb({0, 0});
FOR(i, 1, n) {
cin >> a[i];
b.pb({a[i], i});
}
sort(b.begin() + 1, b.end());
FOR(i, 1, q) {
ll x, y; cin >> x >> y;
x = binaryL(x);
y = binaryR(y);
if(x == -1 || y == -1) Ans[i] = 0;
else {
query.pb({x, y, i});
}
}
block = sqrt(b.size() - 1);
sort(all(query), [](const QUERY &x, const QUERY &y) {
ll rx = x.x / block, ry = y.x / block;
if(rx != ry) return rx < ry;
return x.y > y.y;
});
}
void remove(ll k, bool roll) {
k = b[k].sc;
ll left = linkLeft[k];
ll right = linkRight[k];
if(roll) {
history.push({left, right, k, sum});
}
if(left != -1 && right != -1) {
sum += abs(a[left] - a[right]);
sum -= abs(a[left] - a[k]);
sum -= abs(a[right] - a[k]);
linkRight[left] = right;
linkLeft[right] = left;
} else if(left != -1) {
sum -= abs(a[left] - a[k]);
linkRight[left] = right;
} else if(right != -1) {
sum -= abs(a[right] - a[k]);
linkLeft[right] = left;
}
}
void rollback() {
while(!history.empty()) {
auto [x, y, z, t] = history.top();
history.pop();
linkLeft[z] = x;
linkRight[z] = y;
if(x != -1) linkRight[x] = z;
if(y != -1)linkLeft[y] = z;
sum = t;
}
}
void solve() {
ll l = 0;
FOR(i, 0, n / block) {
ll r = l;
while(r < query.size() && (query[r].x / block) == i) {
r ++;
}
r --;
ll curL = max(1LL, i * block), curR = query[l].y;
FOR(j, 1, n) {
linkLeft[j] = 0;
linkRight[j] = 0;
linkCheck[j] = 0;
}
FOR(j, curL, curR) {
linkCheck[b[j].sc] = 1;
}
sum = 0;
ll cur = 0;
FOR(j, 1, n) {
if(linkCheck[j]) {
if(cur == 0) {
cur = j;
linkLeft[j] = -1;
}
else {
sum += abs(a[j] - a[cur]);
linkLeft[j] = cur;
linkRight[cur] = j;
cur = j;
}
}
}
linkRight[cur] = -1;
FOR(j, l, r) {
while(curR > query[j].y) remove(curR --, 0);
FOR(k, curL, query[j].x - 1) {
if(curL == 4) cout << k << el;
remove(k, 1);
}
Ans[query[j].z] = sum;
rollback();
}
l = r + 1;
}
}
void write() {
FOR(i, 1, q) cout << Ans[i] << el;
}
int main() {
boost;
//file();
read();
solve();
write();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgZnQgZmlyc3QKI2RlZmluZSBzYyBzZWNvbmQKI2RlZmluZSBlbCAnXG4nCiNkZWZpbmUgRk9SKGksYSxiKSBmb3IgKGludCBpID0gKGEpLCBfYiA9IChiKTsgaSA8PSBfYjsgaSArKykKI2RlZmluZSBGT1JEKGksYixhKSBmb3IgKGludCBpID0gKGIpLCBfYSA9IChhKTsgaSA+PSBfYTsgaSAtLSkKI2RlZmluZSBib29zdCBpb3M6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsgY291dC50aWUoMCkKI2RlZmluZSBmaWxlKG5hbWUpIGZyZW9wZW4obmFtZSIuaW5wIiwgInIiLCBzdGRpbik7IGZyZW9wZW4obmFtZSIub3V0IiwgInciLCBzdGRvdXQpCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgYWxsKHgpICh4KS5iZWdpbigpLCh4KS5lbmQoKQp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjb25zdCBsbCBOID0gMmU1OwpsbCBuLCBxLCBibG9jayA9IDAsIHN1bSA9IDAsIGFbTiArIDFdLCBBbnNbTiArIDFdOyAKbGwgbGlua0xlZnRbTiArIDFdLCBsaW5rUmlnaHRbTiArIDFdLCBsaW5rQ2hlY2tbTiArIDFdOwoKdmVjdG9yPHBhaXI8bGwsIGxsPj4gYjsKCnN0cnVjdCBRVUVSWSB7CiAgICBsbCB4LCB5LCB6Owp9OwoKdmVjdG9yPFFVRVJZPiBxdWVyeTsKc3RydWN0IEhJUyB7CiAgICBsbCB4LCB5LCB6LCB0Owp9OwoKc3RhY2s8SElTPiBoaXN0b3J5OwoKbGwgYmluYXJ5TChsbCB0ZykgewogICAgbGwgbCA9IDEsIHIgPSBiLnNpemUoKSAtIDEsIGFucyA9IC0xOwogICAgCiAgICB3aGlsZShsIDw9IHIpIHsKICAgICAgICBsbCBtaWQgPSAobCArIHIpID4+IDE7CgogICAgICAgIGlmKGJbbWlkXS5mdCA+PSB0ZykgewogICAgICAgICAgICByID0gbWlkIC0gMTsKICAgICAgICAgICAgYW5zID0gbWlkOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGwgPSBtaWQgKyAxOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gYW5zOwp9CgpsbCBiaW5hcnlSKGxsIHRnKSB7CiAgICBsbCBsID0gMSwgciA9IGIuc2l6ZSgpIC0gMSwgYW5zID0gLTE7CgogICAgd2hpbGUobCA8PSByKSB7CiAgICAgICAgbGwgbWlkID0gKGwgKyByKSA+PiAxOwoKICAgICAgICBpZihiW21pZF0uZnQgPD0gdGcpIHsKICAgICAgICAgICAgbCA9IG1pZCArIDE7CiAgICAgICAgICAgIGFucyA9IG1pZDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByID0gbWlkIC0gMTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIGFuczsKfQoKdm9pZCByZWFkKCkgewogICAgY2luID4+IG4gPj4gcTsKICAgIGIucGIoezAsIDB9KTsKCiAgICBGT1IoaSwgMSwgbikgewogICAgICAgIGNpbiA+PiBhW2ldOwogICAgICAgIGIucGIoe2FbaV0sIGl9KTsKICAgIH0KCiAgICBzb3J0KGIuYmVnaW4oKSArIDEsIGIuZW5kKCkpOwoKICAgIEZPUihpLCAxLCBxKSB7CiAgICAgICAgbGwgeCwgeTsgY2luID4+IHggPj4geTsKICAgICAgICAKICAgICAgICB4ID0gYmluYXJ5TCh4KTsKICAgICAgICB5ID0gYmluYXJ5Uih5KTsKCiAgICAgICAgaWYoeCA9PSAtMSB8fCB5ID09IC0xKSBBbnNbaV0gPSAwOwogICAgICAgIGVsc2UgewogICAgICAgICAgICBxdWVyeS5wYih7eCwgeSwgaX0pOwogICAgICAgIH0KICAgIH0KCiAgICBibG9jayA9IHNxcnQoYi5zaXplKCkgLSAxKTsKCiAgICBzb3J0KGFsbChxdWVyeSksIFtdKGNvbnN0IFFVRVJZICZ4LCBjb25zdCBRVUVSWSAmeSkgewogICAgICAgIGxsIHJ4ID0geC54IC8gYmxvY2ssIHJ5ID0geS54IC8gYmxvY2s7CgogICAgICAgIGlmKHJ4ICE9IHJ5KSByZXR1cm4gcnggPCByeTsKICAgICAgICByZXR1cm4geC55ID4geS55OwogICAgfSk7Cn0KCnZvaWQgcmVtb3ZlKGxsIGssIGJvb2wgcm9sbCkgewogICAgayA9IGJba10uc2M7CgogICAgbGwgbGVmdCA9IGxpbmtMZWZ0W2tdOwogICAgbGwgcmlnaHQgPSBsaW5rUmlnaHRba107CgogICAgaWYocm9sbCkgewogICAgICAgIGhpc3RvcnkucHVzaCh7bGVmdCwgcmlnaHQsIGssIHN1bX0pOwogICAgfQoKICAgIGlmKGxlZnQgIT0gLTEgJiYgcmlnaHQgIT0gLTEpIHsKICAgICAgICBzdW0gKz0gYWJzKGFbbGVmdF0gLSBhW3JpZ2h0XSk7CiAgICAgICAgc3VtIC09IGFicyhhW2xlZnRdIC0gYVtrXSk7CiAgICAgICAgc3VtIC09IGFicyhhW3JpZ2h0XSAtIGFba10pOwogICAgICAgIGxpbmtSaWdodFtsZWZ0XSA9IHJpZ2h0OwogICAgICAgIGxpbmtMZWZ0W3JpZ2h0XSA9IGxlZnQ7CiAgICB9IGVsc2UgaWYobGVmdCAhPSAtMSkgewogICAgICAgIHN1bSAtPSBhYnMoYVtsZWZ0XSAtIGFba10pOwogICAgICAgIGxpbmtSaWdodFtsZWZ0XSA9IHJpZ2h0OwogICAgfSBlbHNlIGlmKHJpZ2h0ICE9IC0xKSB7CiAgICAgICAgc3VtIC09IGFicyhhW3JpZ2h0XSAtIGFba10pOwogICAgICAgIGxpbmtMZWZ0W3JpZ2h0XSA9IGxlZnQ7CiAgICB9Cn0KCnZvaWQgcm9sbGJhY2soKSB7CiAgICB3aGlsZSghaGlzdG9yeS5lbXB0eSgpKSB7CiAgICAgICAgYXV0byBbeCwgeSwgeiwgdF0gPSBoaXN0b3J5LnRvcCgpOwogICAgICAgIGhpc3RvcnkucG9wKCk7CgogICAgICAgIGxpbmtMZWZ0W3pdID0geDsKICAgICAgICBsaW5rUmlnaHRbel0gPSB5OwogICAgICAgIGlmKHggIT0gLTEpIGxpbmtSaWdodFt4XSA9IHo7CiAgICAgICAgaWYoeSAhPSAtMSlsaW5rTGVmdFt5XSA9IHo7CiAgICAgICAgc3VtID0gdDsKICAgIH0KfQoKdm9pZCBzb2x2ZSgpIHsKICAgIGxsIGwgPSAwOwoKICAgIEZPUihpLCAwLCBuIC8gYmxvY2spIHsKICAgICAgICBsbCByID0gbDsKICAgICAgICB3aGlsZShyIDwgcXVlcnkuc2l6ZSgpICYmIChxdWVyeVtyXS54IC8gYmxvY2spID09IGkpIHsKICAgICAgICAgICAgciArKzsKICAgICAgICB9CgogICAgICAgIHIgLS07CiAgICAgICAgbGwgY3VyTCA9IG1heCgxTEwsIGkgKiBibG9jayksIGN1clIgPSBxdWVyeVtsXS55OwoKICAgICAgICBGT1IoaiwgMSwgbikgewogICAgICAgICAgICBsaW5rTGVmdFtqXSA9IDA7CiAgICAgICAgICAgIGxpbmtSaWdodFtqXSA9IDA7CiAgICAgICAgICAgIGxpbmtDaGVja1tqXSA9IDA7CiAgICAgICAgfQoKICAgICAgICBGT1IoaiwgY3VyTCwgY3VyUikgewogICAgICAgICAgICBsaW5rQ2hlY2tbYltqXS5zY10gPSAxOwogICAgICAgIH0KCiAgICAgICAgc3VtID0gMDsKICAgICAgICBsbCBjdXIgPSAwOwogICAgICAgIEZPUihqLCAxLCBuKSB7CiAgICAgICAgICAgIGlmKGxpbmtDaGVja1tqXSkgewogICAgICAgICAgICAgICAgaWYoY3VyID09IDApIHsKICAgICAgICAgICAgICAgICAgICBjdXIgPSBqOwogICAgICAgICAgICAgICAgICAgIGxpbmtMZWZ0W2pdID0gLTE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBzdW0gKz0gYWJzKGFbal0gLSBhW2N1cl0pOwogICAgICAgICAgICAgICAgICAgIGxpbmtMZWZ0W2pdID0gY3VyOwogICAgICAgICAgICAgICAgICAgIGxpbmtSaWdodFtjdXJdID0gajsKICAgICAgICAgICAgICAgICAgICBjdXIgPSBqOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBsaW5rUmlnaHRbY3VyXSA9IC0xOwoKICAgICAgICBGT1IoaiwgbCwgcikgewogICAgICAgICAgICB3aGlsZShjdXJSID4gcXVlcnlbal0ueSkgcmVtb3ZlKGN1clIgLS0sIDApOwoKICAgICAgICAgICAgRk9SKGssIGN1ckwsIHF1ZXJ5W2pdLnggLSAxKSB7CiAgICAgICAgICAgICAgICBpZihjdXJMID09IDQpIGNvdXQgPDwgayA8PCBlbDsKICAgICAgICAgICAgICAgIHJlbW92ZShrLCAxKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgQW5zW3F1ZXJ5W2pdLnpdID0gc3VtOwogICAgICAgICAgICByb2xsYmFjaygpOwogICAgICAgIH0KCiAgICAgICAgbCA9IHIgKyAxOwogICAgfQp9Cgp2b2lkIHdyaXRlKCkgewogICAgRk9SKGksIDEsIHEpIGNvdXQgPDwgQW5zW2ldIDw8IGVsOwp9CgppbnQgbWFpbigpIHsKICAgIGJvb3N0OwogICAgLy9maWxlKCk7CiAgICByZWFkKCk7CiAgICBzb2x2ZSgpOwogICAgd3JpdGUoKTsKICAgIHJldHVybiAwOwp9