# https://yukicoder.me/problems/no/3002 def solve(array, N): answer = [] left = 0 right = 0 ans = array[left] while left < len(array): while right + 1 < len(array) and ans + array[right + 1] <= N: ans += array[right + 1] right += 1 if ans == N: answer.append((left + 1, right + 1)) if left < right: ans -= array[left] left += 1 else: if right + 1 < len(array): left += 1 right += 1 ans = array[left] else: break return answer def main(): N = int(input()) array =[] i = 1 while i ** 3 <= N: array.append(i ** 3) i += 1 ans1 = solve(array, N) print(len(ans1)) for l, r in ans1: print(l, r) if __name__ == "__main__": main()