n = int(input()) m = 10 ** 12 me = 40 def divisors(n): lo , hi = [], [] i = 1 while i*i <= n: if n % i == 0: lo.append(i) if i != n // i: hi.append(n//i) i += 1 return lo + hi[::-1] ans = [] for e in range(1, me + 1): if e == 1: div = divisors(n * 2) ld = (len(div) + 1) // 2 for i in range(ld)[::-1]: a = div[i] b = div[~i] if (b - a) % 2: l = (b - a - 1) // 2 r = (b + a - 1) // 2 ans.append((e, l + 1, r)) else: a = [0] la = 1 while la ** e <= m: a.append(a[-1] + la ** e) la += 1 a.append(a[-1] + la ** e) l, r = 0, 0 while l < la: while r < la and a[r] - a[l] < n: r += 1 if a[r] - a[l] == n: ans.append((e, l + 1, r)) l += 1 print(len(ans)) for ai in ans: print(*ai)