#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;
};
vector<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(n);
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.pb({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.back();
history.pop_back();
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) {
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+PSBfYTsgaSAtLSkKI2RlZmluZSBib29zdCBpb3M6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsgY291dC50aWUoMCkKI2RlZmluZSBmaWxlKG5hbWUpIGZyZW9wZW4obmFtZSIuaW5wIiwgInIiLCBzdGRpbik7IGZyZW9wZW4obmFtZSIub3V0IiwgInciLCBzdGRvdXQpCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgYWxsKHgpICh4KS5iZWdpbigpLCh4KS5lbmQoKQp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjb25zdCBsbCBOID0gMmU1OwpsbCBuLCBxLCBibG9jayA9IDAsIHN1bSA9IDAsIGFbTiArIDFdLCBBbnNbTiArIDFdOyAKbGwgbGlua0xlZnRbTiArIDFdLCBsaW5rUmlnaHRbTiArIDFdLCBsaW5rQ2hlY2tbTiArIDFdOwoKdmVjdG9yPHBhaXI8bGwsIGxsPj4gYjsKCnN0cnVjdCBRVUVSWSB7CiAgICBsbCB4LCB5LCB6Owp9OwoKdmVjdG9yPFFVRVJZPiBxdWVyeTsKc3RydWN0IEhJUyB7CiAgICBsbCB4LCB5LCB6LCB0Owp9OwoKdmVjdG9yPEhJUz4gaGlzdG9yeTsKCmxsIGJpbmFyeUwobGwgdGcpIHsKICAgIGxsIGwgPSAxLCByID0gYi5zaXplKCkgLSAxLCBhbnMgPSAtMTsKICAgIAogICAgd2hpbGUobCA8PSByKSB7CiAgICAgICAgbGwgbWlkID0gKGwgKyByKSA+PiAxOwoKICAgICAgICBpZihiW21pZF0uZnQgPj0gdGcpIHsKICAgICAgICAgICAgciA9IG1pZCAtIDE7CiAgICAgICAgICAgIGFucyA9IG1pZDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBsID0gbWlkICsgMTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIGFuczsKfQoKbGwgYmluYXJ5UihsbCB0ZykgewogICAgbGwgbCA9IDEsIHIgPSBiLnNpemUoKSAtIDEsIGFucyA9IC0xOwoKICAgIHdoaWxlKGwgPD0gcikgewogICAgICAgIGxsIG1pZCA9IChsICsgcikgPj4gMTsKCiAgICAgICAgaWYoYlttaWRdLmZ0IDw9IHRnKSB7CiAgICAgICAgICAgIGwgPSBtaWQgKyAxOwogICAgICAgICAgICBhbnMgPSBtaWQ7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgciA9IG1pZCAtIDE7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiBhbnM7Cn0KCnZvaWQgcmVhZCgpIHsKICAgIGNpbiA+PiBuID4+IHE7CiAgICBiLnBiKHswLCAwfSk7CgogICAgRk9SKGksIDEsIG4pIHsKICAgICAgICBjaW4gPj4gYVtpXTsKICAgICAgICBiLnBiKHthW2ldLCBpfSk7CiAgICB9CgogICAgc29ydChiLmJlZ2luKCkgKyAxLCBiLmVuZCgpKTsKCiAgICBGT1IoaSwgMSwgcSkgewogICAgICAgIGxsIHgsIHk7IGNpbiA+PiB4ID4+IHk7CiAgICAgICAgCiAgICAgICAgeCA9IGJpbmFyeUwoeCk7CiAgICAgICAgeSA9IGJpbmFyeVIoeSk7CgogICAgICAgIGlmKHggPT0gLTEgfHwgeSA9PSAtMSkgQW5zW2ldID0gMDsKICAgICAgICBlbHNlIHsKICAgICAgICAgICAgcXVlcnkucGIoe3gsIHksIGl9KTsKICAgICAgICB9CiAgICB9CgogICAgYmxvY2sgPSBzcXJ0KG4pOwoKICAgIHNvcnQoYWxsKHF1ZXJ5KSwgW10oY29uc3QgUVVFUlkgJngsIGNvbnN0IFFVRVJZICZ5KSB7CiAgICAgICAgbGwgcnggPSB4LnggLyBibG9jaywgcnkgPSB5LnggLyBibG9jazsKCiAgICAgICAgaWYocnggIT0gcnkpIHJldHVybiByeCA8IHJ5OwogICAgICAgIHJldHVybiB4LnkgPiB5Lnk7CiAgICB9KTsKfQoKdm9pZCByZW1vdmUobGwgaywgYm9vbCByb2xsKSB7CiAgICBrID0gYltrXS5zYzsKCiAgICBsbCBsZWZ0ID0gbGlua0xlZnRba107CiAgICBsbCByaWdodCA9IGxpbmtSaWdodFtrXTsKCiAgICBpZihyb2xsKSB7CiAgICAgICAgaGlzdG9yeS5wYih7bGVmdCwgcmlnaHQsIGssIHN1bX0pOwogICAgfQoKICAgIGlmKGxlZnQgIT0gLTEgJiYgcmlnaHQgIT0gLTEpIHsKICAgICAgICBzdW0gKz0gYWJzKGFbbGVmdF0gLSBhW3JpZ2h0XSk7CiAgICAgICAgc3VtIC09IGFicyhhW2xlZnRdIC0gYVtrXSk7CiAgICAgICAgc3VtIC09IGFicyhhW3JpZ2h0XSAtIGFba10pOwogICAgICAgIGxpbmtSaWdodFtsZWZ0XSA9IHJpZ2h0OwogICAgICAgIGxpbmtMZWZ0W3JpZ2h0XSA9IGxlZnQ7CiAgICB9IGVsc2UgaWYobGVmdCAhPSAtMSkgewogICAgICAgIHN1bSAtPSBhYnMoYVtsZWZ0XSAtIGFba10pOwogICAgICAgIGxpbmtSaWdodFtsZWZ0XSA9IHJpZ2h0OwogICAgfSBlbHNlIGlmKHJpZ2h0ICE9IC0xKSB7CiAgICAgICAgc3VtIC09IGFicyhhW3JpZ2h0XSAtIGFba10pOwogICAgICAgIGxpbmtMZWZ0W3JpZ2h0XSA9IGxlZnQ7CiAgICB9Cn0KCnZvaWQgcm9sbGJhY2soKSB7CiAgICB3aGlsZSghaGlzdG9yeS5lbXB0eSgpKSB7CiAgICAgICAgYXV0byBbeCwgeSwgeiwgdF0gPSBoaXN0b3J5LmJhY2soKTsKICAgICAgICBoaXN0b3J5LnBvcF9iYWNrKCk7CgogICAgICAgIGxpbmtMZWZ0W3pdID0geDsKICAgICAgICBsaW5rUmlnaHRbel0gPSB5OwogICAgICAgIGlmKHggIT0gLTEpIGxpbmtSaWdodFt4XSA9IHo7CiAgICAgICAgaWYoeSAhPSAtMSkgbGlua0xlZnRbeV0gPSB6OwogICAgICAgIHN1bSA9IHQ7CiAgICB9Cn0KCnZvaWQgc29sdmUoKSB7CiAgICBsbCBsID0gMDsKCiAgICBGT1IoaSwgMCwgbiAvIGJsb2NrKSB7CiAgICAgICAgbGwgciA9IGw7CiAgICAgICAgd2hpbGUociA8IHF1ZXJ5LnNpemUoKSAmJiAocXVlcnlbcl0ueCAvIGJsb2NrKSA9PSBpKSB7CiAgICAgICAgICAgIHIgKys7CiAgICAgICAgfQoKICAgICAgICByIC0tOwogICAgICAgIGxsIGN1ckwgPSBtYXgoMUxMLCBpICogYmxvY2spLCBjdXJSID0gcXVlcnlbbF0ueTsKCiAgICAgICAgRk9SKGosIDEsIG4pIHsKICAgICAgICAgICAgbGlua0xlZnRbal0gPSAwOwogICAgICAgICAgICBsaW5rUmlnaHRbal0gPSAwOwogICAgICAgICAgICBsaW5rQ2hlY2tbal0gPSAwOwogICAgICAgIH0KCiAgICAgICAgRk9SKGosIGN1ckwsIGN1clIpIHsKICAgICAgICAgICAgbGlua0NoZWNrW2Jbal0uc2NdID0gMTsKICAgICAgICB9CgogICAgICAgIHN1bSA9IDA7CiAgICAgICAgbGwgY3VyID0gMDsKICAgICAgICBGT1IoaiwgMSwgbikgewogICAgICAgICAgICBpZihsaW5rQ2hlY2tbal0pIHsKICAgICAgICAgICAgICAgIGlmKGN1ciA9PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgY3VyID0gajsKICAgICAgICAgICAgICAgICAgICBsaW5rTGVmdFtqXSA9IC0xOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgc3VtICs9IGFicyhhW2pdIC0gYVtjdXJdKTsKICAgICAgICAgICAgICAgICAgICBsaW5rTGVmdFtqXSA9IGN1cjsKICAgICAgICAgICAgICAgICAgICBsaW5rUmlnaHRbY3VyXSA9IGo7CiAgICAgICAgICAgICAgICAgICAgY3VyID0gajsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgbGlua1JpZ2h0W2N1cl0gPSAtMTsKCiAgICAgICAgRk9SKGosIGwsIHIpIHsKICAgICAgICAgICAgd2hpbGUoY3VyUiA+IHF1ZXJ5W2pdLnkpIHJlbW92ZShjdXJSIC0tLCAwKTsKCiAgICAgICAgICAgIEZPUihrLCBjdXJMLCBxdWVyeVtqXS54IC0gMSkgewogICAgICAgICAgICAgICAgcmVtb3ZlKGssIDEpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBBbnNbcXVlcnlbal0uel0gPSBzdW07CiAgICAgICAgICAgIHJvbGxiYWNrKCk7CiAgICAgICAgfQoKICAgICAgICBsID0gciArIDE7CiAgICB9Cn0KCnZvaWQgd3JpdGUoKSB7CiAgICBGT1IoaSwgMSwgcSkgY291dCA8PCBBbnNbaV0gPDwgZWw7Cn0KCmludCBtYWluKCkgewogICAgYm9vc3Q7CiAgICAvL2ZpbGUoKTsKICAgIHJlYWQoKTsKICAgIHNvbHZlKCk7CiAgICB3cml0ZSgpOwogICAgcmV0dXJuIDA7Cn0=