import typing import sys import math import collections import bisect import itertools import heapq import decimal import copy # sys.setrecursionlimit(10000001) INF = 10 ** 20 MOD = 10 ** 9 + 7 # MOD = 998244353 def ni(): return int(sys.stdin.buffer.readline()) def ns(): return map(int, sys.stdin.buffer.readline().split()) def na(): return list(map(int, sys.stdin.buffer.readline().split())) def na1(): return list(map(lambda x: int(x)-1, sys.stdin.buffer.readline().split())) # ===CODE=== def main(): n = ni() a, b, c = 0, 0, 0 flg=False reverse = 1 for i in range(31): if n >> i & 1: t = pow(2,i) if reverse: a += t b += t else: flg=True b+=t c+=t reverse^=1 if flg: print(a, b, c) else: print(-1,-1,-1) if __name__ == '__main__': main()