#include #define INF 1e9 #define LINF (1LL << 63 - 1) #define rep(i,n)for(int i=0;(i)<(int)(n);i++) #define REP(i,a,b)for(int i=(int)(a);(i)<=(int)(b);i++) #define ALL(a) (a).begin(),(a).end() // #define chmax(a, b) a = max(a, b) // #define chmin(a, b) a = min(a, b) #define pb push_back #define fi first #define se second #define sz(x) ((int)x.size()) using namespace std; //using namespace atcoder; using ld = long double; using ll = long long; using P = pair; template bool chmin(T& a, const T& b) { if(a > b){ a = b; return 1;} return 0; } template bool chmax(T& a, const T& b) { if(a < b){ a = b; return 1;} return 0; } const ll ZER = 0; const ll MOD = 1e9 + 7; int main(){ ll n; cin >> n; n = (1LL<<30); ll a = n; ll b = n, c; ll cnt = 0; ll tmp = b; while(tmp){ if(tmp % 2 == 1){ // cout << cnt << endl; c = (1 << cnt); b = (b ^ c); break; } cnt++; tmp /= 2; } if(!a || !b || !c)cout << -1 << " " << -1 << " " << -1 << endl; else cout << a << " " << b << " " << c << endl; // cout << (a | b) << " "<< (b | c) << " " << (c | a) << endl; // cout << ((a ^ b) ^ c) << endl; }