from math import gcd P, Q = map(int, input().split()) g = gcd(P, Q) P //= g Q //= g div_Q = set() for i in range(1, int(Q**0.5)+1): if Q % i == 0: div_Q.add(i) div_Q.add(Q//i) S = set() for s in div_Q: for t in div_Q: S.add(s*t) S = sorted(list(S)) ans = [] for s in S: n = (s+Q)//P if P*n-Q != s: continue t = Q**2//s m = (t+Q)//P if P*m-Q != t: continue ans.append([n, m]) print(len(ans)) for a in ans: print(*a)