from itertools import permutations def divisors(n: int) -> list[int]: """n の約数を求める""" s = set() p = 1 while p * p <= n: if n % p == 0: s.add(p) s.add(n // p) p += 1 return sorted(s) N = int(input()) s = set() for x in range(N+1): # x を規定 if 3*x*x > N: break m = N + x*x for d in divisors(m): x_plus_z = m // d z = x_plus_z - x y = d - x if x <= y <= z: s.add((x, y, z)) ans = set() for e in s: ans.update(permutations(e)) print(len(ans)) for a in ans: print(*a)