#include <bits/stdc++.h>
using namespace std;
int n, q;
int a[111111];
vector<pair<int, int> > v;
pair<int, int> lr[111111];
void pre() {
  set<int> st;
  set<int>::iterator it;
  st.insert(0);
  st.insert(n);
  for (int i = 1; i < n; i++) v.push_back(make_pair(abs(a[i] - a[i - 1]), i));
  sort(v.begin(), v.end(), greater<pair<int, int> >());
  for (int i = 0; i < v.size(); i++) {
    it = st.upper_bound(v[i].second);
    lr[v[i].second].second = *it;
    it--;
    lr[v[i].second].first = *it;
    st.insert(v[i].second);
  }
}
long long solve(int l, int r) {
  long long ans = 0;
  for (int i = l + 1; i < r; i++) {
    int cl = max(l, lr[i].first);
    int cr = min(r, lr[i].second);
    ans += 1ll * (i - cl) * (cr - i) * abs(a[i] - a[i - 1]);
  }
  return ans;
}
int main() {
  scanf("%d%d", &n, &q);
  for (int i = 0; i < n; i++) cin >> a[i];
  pre();
  while (q--) {
    int l, r;
    scanf("%d%d", &l, &r);
    l--, r--;
    cout << solve(l, r + 1) << endl;
  }
}
