n = int(input()) C = set() for i in range(1, 10 ** 6+2): if i * i > n: break if n % i == 0: C.add(i) C.add(n // i) C = list(C) C.sort() Ans = [] for a in C: b = n // a if not b % 2 and not a % 2: continue if not b % 2: k = a // 2 k_ = k + 1 l = k - b // 2 + 1 r = k_ + b // 2 - 1 if 1 <= l: Ans.append((1, l, r)) else: l = a - b // 2 r = a + b // 2 if 1 <= l: Ans.append((1, l, r)) if a % 2 and b % 2: k = a // 2 k_ = k + 1 l = k - b + 1 r = k_ + b - 1 if 1 <= l: Ans.append((1, l, r)) for i in range(2, 61): D = {0: 0} pre = 0 r = 1 while pow(r, i) <= n: now = pre + pow(r, i) if now - n in D: Ans.append((i, D[now-n]+1, r)) D[now] = r pre = now r += 1 Ans.sort() print(len(Ans)) for e, l, r in Ans: print(e, l, r)