p,q = map(int,input().split()) def fact(n): l = set() for i in range(1,int(pow(n,0.5))+1): if n % i == 0: l.add(i) l.add(n//i) return l f = fact(q) qq = q*q ans = set() for i in f: j = qq//i i += q j += q if i % p == 0 and j % p == 0: ans.add((i//p, j//p)) ans.add((j//p,i//p)) print(len(ans)) for i, j in ans: print(i,j)