#include <bits/stdc++.h>
using namespace std;
long long n;
int mod;
long long calc(long long u, long long p, long long m) {
  u = min(u, n);
  if (u < p) return 0;
  long long k = (u - p) / m % mod;
  return (k * (k + 1) / 2 % mod * (m % mod) + (k + 1) * (p % mod)) % mod;
}
long long solve(long long l, long long r, long long u, long long v, long long a,
                long long b, long long p, long long m) {
  l = max(l, a);
  r = min(r, b);
  if (l > r) return 0;
  if (l == a && r == b)
    return (calc(v, p, m) - calc(u - 1, p, m) + mod) % mod;
  else
    return (solve(l, r, u, v, a, a + (b - a) / 2, p, m * 2) +
            solve(l, r, u, v, a + (b - a) / 2 + 1, b, p + m, m * 2)) %
           mod;
}
int main() {
  int q;
  long long l, r, u, v;
  cin >> n >> q >> mod;
  while (q--) {
    scanf("%I64d%I64d%I64d%I64d", &l, &r, &u, &v);
    printf("%d\n", solve(l, r, u, v, 1, n, 1, 1));
  }
  return 0;
}
