#include <bits/stdc++.h>
using namespace std;
vector<long long> bitr;
void update(long long ind, long long val, long long n) {
  long long i = ind + 1;
  while (i <= n) {
    bitr[i] += val;
    i += i & (-i);
  }
}
long long sum(long long ind) {
  long long i = ind + 1;
  long long ans = 0;
  while (i > 0) {
    ans += bitr[i];
    i -= i & (-i);
  }
  return ans;
}
int main() {
  long long n, q, i;
  cin >> n >> q;
  long long arr[n];
  bitr.push_back(0);
  for (i = 0; i < n; i++) {
    cin >> arr[i];
    bitr.push_back(0);
  }
  sort(arr, arr + n);
  for (i = 0; i < q; i++) {
    long long l, r;
    cin >> l >> r;
    l--;
    r--;
    update(l, 1, n);
    update(r + 1, -1, n);
  }
  long long fact[n];
  for (i = 0; i < n; i++) fact[i] = sum(i);
  sort(fact, fact + n);
  long long res = 0;
  for (i = 0; i < n; i++) {
    res += (fact[i] * arr[i]);
  }
  cout << res << endl;
  return 0;
}
