#include <bits/stdc++.h>
using namespace std;
long long l, r, u, v, P, ans;
void sol(long long n, long long L, long long R, long long a0, long long d) {
  if (v < a0 || u > a0 + (n - 1) * d) return;
  if (l <= L && R <= r) {
    long long st = a0;
    if (u > a0) st = a0 + (u - a0 + d - 1) / d * d;
    long long ed = a0 + d * min(n - 1, (v - a0) / d);
    ans = (ans + (((ed - st) / d + 1) % P) * ((st + ed) % P) % P) % P;
    return;
  }
  long long mid = (L + R) / 2;
  if (l <= mid) sol((n + 1) / 2, L, mid, a0, d * 2);
  if (r > mid) sol(n / 2, mid + 1, R, a0 + d, d * 2);
}
int main() {
  long long n;
  int m;
  scanf("%I64d%d%I64d", &n, &m, &P);
  P *= 2;
  for (int i = 0; i < m; i++) {
    scanf("%I64d%I64d%I64d%I64d", &l, &r, &u, &v);
    ans = 0;
    sol(n, 1, n, 1, 1);
    printf("%I64d\n", ans / 2);
  }
  return 0;
}
