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