#include <bits/stdc++.h>
using namespace std;
int main() {
  int x;
  vector<int> a;
  a.push_back(0);
  a.push_back(1);
  while (1) {
    int cur = (a[a.size() - 1] + a[a.size() - 2]);
    if (cur > 1000000000) break;
    a.push_back(cur);
  }
  while (cin >> x) {
    int n = x;
    vector<int> ans;
    for (int i = a.size() - 1; i >= 0; i--) {
      while (x >= a[i]) {
        x -= a[i];
        ans.push_back(a[i]);
        if (ans.size() > 3) break;
      }
      if (ans.size() > 3) break;
    }
    sort(ans.begin(), ans.end());
    if (ans[ans.size() - 1] + ans[ans.size() - 2] + ans[ans.size() - 3] == n) {
      cout << ans[ans.size() - 3] << " " << ans[ans.size() - 2] << " "
           << ans[ans.size() - 1] << endl;
    } else
      cout << "I'm too stupid to solve this problem";
  }
  return 0;
}
