#include <bits/stdc++.h>
int arr[100], idx = 0;
void generate() {
  int a = 0, b = 1, c = 1;
  arr[idx++] = a;
  arr[idx++] = b;
  arr[idx++] = c;
  while (true) {
    a = b;
    b = c;
    c = a + b;
    if (c > 1000000000) break;
    arr[idx++] = c;
  }
}
int main() {
  int n, flag;
  generate();
  scanf("%d", &n);
  for (int i = 0; i < idx; i++) {
    for (int j = 0; j < idx; j++) {
      for (int k = 0; k < idx; k++) {
        flag = 0;
        if (arr[i] + arr[j] + arr[k] == n) {
          if (!flag) {
            printf("%d %d %d\n", arr[i], arr[j], arr[k]);
            flag = 1;
          }
        }
        if (flag) break;
      }
      if (flag) break;
    }
    if (flag) break;
  }
  if (!flag) printf("I'm too stupid to solve this problem\n");
  getchar();
  getchar();
  return 0;
}
