P, Q = map(int, input().split()) Nmin = 2 * Q // P def check(n, m): return P * n * m <= Q * (n + m) ans = [] for n in range(Nmin, Nmin + 2): if n == 0: continue lb = n ub = 10 ** 9 while ub - lb > 1: mid = (ub + lb) // 2 if check(n, mid): lb = mid else: ub = mid m = lb if P * n * m == Q * (n + m): ans.append((n, m)) if n != m: ans.append((m, n)) ans.sort() na = len(ans) print(na) for a in ans: print(*a)