#include <bits/stdc++.h>
using namespace std;
long long f(long long a, long long b, long long n) {
  if (a > b) {
    long long t = a;
    a = b;
    b = t;
  }
  if (n < 0)
    return 0;
  else if (n >= 0 && n <= a)
    return n * (n + 1) / 2;
  else if (n >= a && n <= b)
    return a * (a + 1) / 2 + (n - a) * a;
  else if (n >= b && n < a + b)
    return a * (a + 1) / 2 + (b - a) * a + (n - b) * (2 * a + b - n - 1) / 2;
  else
    return a * b;
}
long long check(long long len, long long m) {
  if (m > len)
    return len;
  else
    return m;
}
long long cal(long long n, long long x, long long y, long long m) {
  if (m == 0) return 1;
  long long ans = f(x - 1, y - 1, m - 1) + f(x - 1, n - y, m - 1) +
                  f(n - x, n - y, m - 1) + f(n - x, y - 1, m - 1) + 1;
  ans = ans + check(x - 1, m);
  ans = ans + check(y - 1, m);
  ans = ans + check(n - x, m);
  ans = ans + check(n - y, m);
  return ans;
}
long long solve(long long l, long long r, long long n, long long x, long long y,
                long long c) {
  while (l <= r) {
    long long m = (l + r) >> 1;
    if (cal(n, x, y, m) < c)
      l = m + 1;
    else
      r = m - 1;
  }
  return l;
}
int main() {
  long long n, c, x, y, a, b;
  while (cin >> n >> x >> y >> c) {
    if (c == 1)
      cout << 0 << endl;
    else
      cout << solve(0, n * 2, n, x, y, c) << endl;
  }
  return 0;
}
