#include <bits/stdc++.h>
using namespace std;
int main() {
  long long n;
  scanf("%I64d", &n);
  int l = 0;
  int r = 1000000000;
  int ans = 0;
  while (l < r) {
    long long mid = l + r >> 1;
    if (mid * (mid + 1) * 3 < n) {
      l = mid + 1;
    } else
      r = mid;
  }
  long long mid = l;
  pair<long long, long long> pos = make_pair(mid << 1, 0);
  n -= mid * (mid - 1) * 3;
  if (n >= mid)
    n -= mid, pos = make_pair(pos.first - mid, pos.second + 2 * mid);
  else
    pos = make_pair(pos.first - n, pos.second + 2 * n), n = 0;
  if (n >= mid)
    n -= mid, pos = make_pair(pos.first - 2 * mid, pos.second);
  else
    pos = make_pair(pos.first - 2 * n, pos.second), n = 0;
  if (n >= mid)
    n -= mid, pos = make_pair(pos.first - mid, pos.second - 2 * mid);
  else
    pos = make_pair(pos.first - n, pos.second - 2 * n), n = 0;
  if (n >= mid)
    n -= mid, pos = make_pair(pos.first + mid, pos.second - 2 * mid);
  else
    pos = make_pair(pos.first + n, pos.second - 2 * n), n = 0;
  if (n >= mid)
    n -= mid, pos = make_pair(pos.first + 2 * mid, pos.second);
  else
    pos = make_pair(pos.first + 2 * n, pos.second), n = 0;
  if (n >= mid)
    n -= mid, pos = make_pair(pos.first + mid, pos.second + 2 * mid);
  else
    pos = make_pair(pos.first + n, pos.second + 2 * n), n = 0;
  printf("%I64d %I64d\n", pos.first, pos.second);
  return 0;
}
