#include <bits/stdc++.h>
using namespace std;
const int MAX_L = 600000000;
const int dxs[] = {-1, -2, -1, 1, 2, 1};
const int dys[] = {2, 0, -2, -2, 0, 2};
int main() {
  long long n;
  scanf("%lld", &n);
  if (n == 0) {
    puts("0 0");
    return 0;
  }
  long long l0 = 0, l1 = MAX_L;
  while (l0 + 1 < l1) {
    long long l = (l0 + l1) / 2;
    if (n <= l * (l + 1) * 3)
      l1 = l;
    else
      l0 = l;
  }
  long long l = l1;
  n = (n - (l - 1) * l * 3) % (l * 6);
  long long x = l * 2, y = 0;
  for (int di = 0; di < 6; di++) {
    if (n < l) {
      x += n * dxs[di], y += n * dys[di];
      printf("%lld %lld\n", x, y);
      break;
    } else {
      x += l * dxs[di], y += l * dys[di];
      n -= l;
    }
  }
  return 0;
}
