#include <bits/stdc++.h>
using namespace std;
using LD = long double;
const int N = 1e5 + 7, inf = 1e9 + 7, MOD = 998244353;
const long long INF = 2e18 + 7;
const int M = 1 << 17;
int dane[N];
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  ;
  int n, q;
  cin >> n >> q;
  for (int i = 0; i < n; ++i) {
    cin >> dane[i];
  }
  while (q--) {
    int l, r;
    cin >> l >> r;
    --l, --r;
    int len = r - l;
    vector<int> roznice;
    roznice.reserve(len);
    for (int i = l; i < r; ++i) {
      roznice.push_back(abs(dane[i + 1] - dane[i]));
    }
    long long res = 0;
    stack<pair<int, int> > kolejka;
    for (int i = 0; i < roznice.size(); ++i) {
      int ileGrup = 1;
      while (kolejka.size() && kolejka.top().first <= roznice[i]) {
        ileGrup += kolejka.top().second;
        res -= (kolejka.top().second) * 1ll * (len - i) * kolejka.top().first;
        kolejka.pop();
      }
      res += roznice[i] * 1ll * ileGrup * (len - i);
      kolejka.push({roznice[i], ileGrup});
    }
    cout << res << '\n';
  }
  return 0;
}
