def extended_gcd(a, b): if b == 0: return a, 1, 0 else: d, x, y = extended_gcd(b, a % b) return d, y, x - (a // b) * y def count_valid_y(n,m,x, p, f): d, _, _ = extended_gcd(x, p) if f % d != 0: return 0 else: count = 0 y0 = ((f // d) * extended_gcd(x // d, p // d)[1]) % (p // d) for k in range(10): y = y0 + k * (p // d) if 1 <= y <= m: count += 1 return count # x = 任意の値 # p = 任意の値 # f = 任意の値 n,m,p,q=map(int,input().split()) for i in range(q): x,f=map(int,input().split()) result = count_valid_y(n,m,x, p, f) print(result)