#include <bits/stdc++.h>
using namespace std;
const int maxn = 2e5 + 5;
int n, q;
long long a[maxn], mxr[maxn];
long long t[maxn];
void add(int i, int x) {
  while (i <= n) {
    mxr[i] += x;
    i += (i & -i);
  }
}
long long sum(int i) {
  long long rel = 0;
  while (i > 0) {
    rel += mxr[i];
    i -= (i & -i);
  }
  return rel;
}
int main() {
  long long ans = 0;
  scanf("%d%d", &n, &q);
  for (int i = 1; i <= n; i++) scanf("%I64d", &a[i]);
  sort(a + 1, a + 1 + n);
  int l, r;
  for (int i = 0; i < q; i++) {
    scanf("%d%d", &l, &r);
    add(l, 1);
    add(r + 1, -1);
  }
  for (int i = 1; i <= n; i++) t[i] = sum(i);
  sort(t + 1, t + 1 + n);
  for (int i = n; i >= 1; i--) ans += a[i] * t[i];
  printf("%I64d\n", ans);
  return 0;
}
