#include <iostream>
#include <map>
#include <tuple>
using namespace std;
map<int, tuple<long long, long long, long long>> m = {
{0, {0, 0, 0}},
{1, {0, 0, 1}},
{2, {0, 1, 1}},
{3, {1, 1, 1}},
{6, {-1, -1, 2}},
{7, {0, -1, 2}},
{8, {0, 0, 2}},
{9, {0, 1, 2}},
{10, {1, 1, 2}},
{11, {-2, -2, 3}},
{12, {7, 10, -11}},
{15, {-1, 2, 2}},
{16, {-511, -1609, 1626}},
{17, {1, 2, 2}},
{18, {-1, -2, 3}},
{19, {0, -2, 3}},
{20, {1, -2, 3}},
{21, {-11, -14, 16}},
{24, {-2901096694, -15550555555, 15584139827}},
{25, {-1, -1, 3}},
{26, {0, -1, 3}},
{27, {0, 0, 3}},
{28, {0, 1, 3}},
{29, {1, 1, 3}},
{30, {-283059965, -2218888517, 2220422932}},
{33, {8866128975287528, -8778405442862239, -2736111468807040}},
{34, {-1, 2, 3}},
{35, {0, 2, 3}},
{36, {1, 2, 3}},
{37, {0, -3, 4}},
{38, {1, -3, 4}},
{39, {117367, 134476, -159380}},
{42, {-80538738812075974, 80435758145817515, 12602123297335631}},
{43, {2, 2, 3}},
{44, {-5, -7, 8}},
{45, {2, -3, 4}},
{46, {-2, 3, 3}},
{47, {6, 7, -8}},
{48, {-23, -26, 31}}
};
void solve(void) {
int n; cin >> n;
if (m.find(n) != m.end()) {
auto [x, y, z] = m[n];
cout << x << " " << y << " " << z;
} else {
cout << "0";
}
}
int main(void) {
ios::sync_with_stdio(false);
cin.tie(nullptr);
solve();
return 0;
}