def divisor(n): ans = [] for i in range(1, int(n**0.5)+1): if n % i == 0: ans.append(i) if i*i != n: ans.append(n//i) return ans N = int(input()) INF = 1<<60 div = divisor(N) ans = [] for d in div: ans.append((d, N//d, 0)) ans.append((d, 0, N//d)) ans.append((0, d, N//d)) for x in range(1, INF): if N-x < x: break for y in range(1, INF): if N-x*y < x+y: break if (N-x*y)%(x+y) == 0: ans.append((x, y, (N-x*y)//(x+y))) print(len(ans)) for x, y, z in ans: print(x, y, z)