from math import gcd p, q = map(int, input().split()) d = gcd(p, q); p //= d; q //= d ans = [] for n in range(1, 10**5): if p*n-q > 0 and n*q%(p*n-q) == 0: m = n*q//(p*n-q) if n > m: break ans.append((n, m)) if not ans: print(0) elif ans[-1][0] == ans[-1][1]: print(len(ans)*2-1) for n, m in ans: print(n, m) for m, n in ans[-2::-1]: print(n, m) else: print(len(ans)*2) for n, m in ans: print(n, m) for m, n in ans[::-1]: print(n, m)