import queue n, m, p, q = map(int, input().split()) query = queue.Queue() for _ in range(q): x, f = map(int, input().split()) query.put((x, f)) for _ in range(q): x, f = query.get() que = queue.Queue() s = set() count = 0 j = 0 for y in range(1, m+1): c = (x * y) % p if c == f: start_index = y j = 1 if not c in s: s.add(c) else: f_in = f in s if not f_in: print(0) break d = len(s) show = m // d if m % d > start_index: show += 1 print(show) break else: print(j)