#include <bits/stdc++.h>
using namespace std;
long long n, mod;
long long calc(long long nl, long long nr, long long l, long long r,
               long long u, long long v, long long suf, long long mi) {
  long long s = 0;
  long long mid = (nl + nr) / 2;
  if (l <= nl && r >= nr) {
    if (u == 1)
      return ((v - 1 - suf) >= 0
                  ? (((v - 1 - suf) / mi + 1) % mod * ((suf + 1) % mod) % mod +
                     mi % mod *
                         (((v - 1 - suf) / mi % mod) *
                          (((v - 1 - suf) / mi + 1) % mod) / 2 % mod) %
                         mod) %
                        mod
                  : 0);
    else
      return (((v - 1 - suf) >= 0
                   ? ((((v - 1 - suf) / mi + 1) % mod) * ((suf + 1) % mod) %
                          mod +
                      mi % mod *
                          ((((v - 1 - suf) / mi) % mod) *
                           (((v - 1 - suf) / mi + 1) % mod) / 2 % mod) %
                          mod) %
                         mod
                   : 0) -
              ((u - 2 - suf) >= 0
                   ? (((((u - 2 - suf) / mi + 1) % mod) * ((suf + 1) % mod) %
                           mod +
                       mi % mod *
                           (((u - 2 - suf) / mi % mod) *
                            (((u - 2 - suf) / mi + 1) % mod) / 2 % mod) %
                           mod) %
                      mod)
                   : 0) +
              mod) %
             mod;
  }
  if (l <= mid) s += calc(nl, mid, l, r, u, v, suf, mi * 2);
  if (r > mid) s += calc(mid + 1, nr, l, r, u, v, suf + mi, mi * 2);
  return s % mod;
}
int main() {
  long long m, l, r, u, v;
  cin >> n >> m >> mod;
  for (; m; m--) {
    cin >> l >> r >> u >> v;
    if (v > n) v = n;
    if (u > n) u = n + 1;
    cout << calc(1, n, l, r, u, v, 0, 1) << endl;
  }
  return 0;
}
