#include <bits/stdc++.h>
using namespace std;
const int maxn = 2e5 + 7;
int T[maxn], sum[20 * maxn], lson[20 * maxn], rson[20 * maxn];
int tol;
void update(int last, int &o, int l, int r, int pos) {
  o = tol++;
  sum[o] = sum[last] + 1;
  if (l == r) {
    return;
  }
  int m = l + (r - l) / 2;
  if (pos <= m) {
    rson[o] = rson[last];
    update(lson[last], lson[o], l, m, pos);
  } else {
    lson[o] = lson[last];
    update(rson[last], rson[o], m + 1, r, pos);
  }
}
int query(int last, int o, int l, int r, int ql, int qr) {
  if (qr < ql) return 0;
  if (ql <= l && qr >= r) {
    return sum[last] - sum[o];
  }
  int m = l + (r - l) / 2;
  if (qr <= m) {
    return query(lson[last], lson[o], l, m, ql, qr);
  } else if (ql > m) {
    return query(rson[last], rson[o], m + 1, r, ql, qr);
  } else {
    return query(lson[last], lson[o], l, m, ql, qr) +
           query(rson[last], rson[o], m + 1, r, ql, qr);
  }
}
int main() {
  int n, m, l, r, d, u, x;
  scanf("%d%d", &n, &m);
  tol = 1;
  T[0] = 0;
  lson[0] = 0, rson[0] = 0, sum[0] = 0;
  for (int i = 1; i <= n; i++) {
    scanf("%d", &x);
    update(T[i - 1], T[i], 1, n, x);
  }
  while (m--) {
    scanf("%d%d%d%d", &l, &d, &r, &u);
    int cnt1 = query(T[l - 1], T[0], 1, n, u + 1, n);
    int cnt2 = query(T[r], T[l - 1], 1, n, u + 1, n);
    int cnt3 = query(T[n], T[r], 1, n, u + 1, n);
    int cnt4 = query(T[l - 1], T[0], 1, n, d, u);
    int cnt5 = query(T[r], T[l - 1], 1, n, d, u);
    int cnt6 = query(T[n], T[r], 1, n, d, u);
    int cnt7 = query(T[l - 1], T[0], 1, n, 1, d - 1);
    int cnt8 = query(T[r], T[l - 1], 1, n, 1, d - 1);
    int cnt9 = query(T[n], T[r], 1, n, 1, d - 1);
    long long ans = 0;
    ans += 1ll * cnt1 * (cnt5 + cnt6 + cnt8 + cnt9);
    ans += 1ll * cnt2 * (cnt4 + cnt5 + cnt6 + cnt7 + cnt8 + cnt9);
    ans += 1ll * cnt3 * (cnt4 + cnt5 + cnt7 + cnt8);
    ans += 1ll * cnt4 * (cnt2 + cnt3 + cnt5 + cnt6 + cnt8 + cnt9);
    ans += 1ll * cnt5 * (n - 1);
    ans += 1ll * cnt6 * (cnt1 + cnt2 + cnt4 + cnt5 + cnt7 + cnt8);
    ans += 1ll * cnt7 * (cnt2 + cnt3 + cnt5 + cnt6);
    ans += 1ll * cnt8 * (cnt1 + cnt2 + cnt3 + cnt4 + cnt5 + cnt6);
    ans += 1ll * cnt9 * (cnt1 + cnt2 + cnt4 + cnt5);
    printf("%I64d\n", ans / 2);
  }
  return 0;
}
