import math def gcd(a, b): while b != 0: a, b = b, a % b return a def count_matching_towns(N, M, P, Q, queries): results = [] for i in range(Q): x, f = queries[i] if f == 0: results.append(M) # 親交度が0の場合、やきとり国の町の個数は全ての町の数Mとなる continue count = 0 for y in range(1, M + 1): if gcd(x, y) == 1: # セパ国の町の番号xとやきとり国の町の番号yが互いに素であるか判定 if (x * y) % P == f: count += 1 results.append(count) return results # 入力値の取得 N, M, P, Q = map(int, input().split()) queries = [] for _ in range(Q): x, f = map(int, input().split()) queries.append((x, f)) # クエリの実行 results = count_matching_towns(N, M, P, Q, queries) # 結果の出力 for result in results: print(result)