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()) div = divisor(N) ans = [] for d in div: if d%2 == 0: continue l, r = d//2, d//2+1 if N//d <= l: ans.append((1, l-N//d+1, r+N//d-1)) if 1 <= N//d-d//2: ans.append((1, N//d-d//2, N//d+d//2)) for E in range(2, 41): D = dict() cum = [0] D[0] = 0 for i in range(1, 1<<60): cum.append(cum[-1]+i**E) if cum[-1]-N in D: ans.append((E, D[cum[-1]-N]+1, i)) D[cum[-1]] = i if N < cum[-1]-cum[-2]: break ans.sort() print(len(ans)) for a in ans: print(*a)