#include #include "atcoder/modint" using i64 = long long; using Mint = atcoder::dynamic_modint<1>; int main() { i64 N, M, P; int Q; std::cin >> N >> M >> P >> Q; Mint::set_mod(P); while (Q--) { i64 x, f; std::cin >> x >> f; x %= P; if (x == 0) { if (f == 0) { std::cout << M << std::endl; } else { std::cout << 0 << std::endl; } continue; } Mint inv = Mint(f) / Mint(x); i64 v = inv.val(); if (v > M) std::cout << 0 << std::endl; else { std::cout << (M - v) / P + (f == 0 ? 0 : 1) << std::endl; } } }