#include <bits/stdc++.h>
using namespace std;
static long long val(long long k) { return k * ((3 * k) + 2); }
static long long value(long long n) {
  long long high = 577350269;
  long long low = 0;
  while (high - low > 1) {
    if (val((high + low) / 2) < n)
      low = (high + low) / 2;
    else
      high = (high + low) / 2;
  }
  return low;
}
int main() {
  long long n;
  cin >> n;
  long long k = value(n);
  long long x = k;
  long long y = -2 * k;
  n -= k * (3 * k + 2);
  x += min(n, k + 1);
  y += 2 * min(n, k + 1);
  n -= min(n, k + 1);
  x -= min(n, k);
  y += 2 * min(n, k);
  n -= min(n, k);
  x -= 2 * min(n, k + 1);
  n -= min(n, k + 1);
  x -= min(n, k + 1);
  y -= 2 * min(n, k + 1);
  n -= min(n, k + 1);
  x += min(n, k + 1);
  y -= 2 * min(n, k + 1);
  n -= min(n, k + 1);
  x += 2 * min(n, k + 1);
  n -= min(n, k + 1);
  cout << x << " " << y << endl;
  return 0;
}
