Mr. Bender has a digital table of size n × n, each cell can be switched on or off. He wants the field to have at least c switched on squares. When this condition is fulfilled, Mr Bender will be happy.

We'll consider the table rows numbered from top to bottom from 1 to n, and the columns — numbered from left to right from 1 to n. Initially there is exactly one switched on cell with coordinates (x, y) (x is the row number, y is the column number), and all other cells are switched off. Then each second we switch on the cells that are off but have the side-adjacent cells that are on.

For a cell with coordinates (x, y) the side-adjacent cells are cells with coordinates (x - 1, y), (x + 1, y), (x, y - 1), (x, y + 1).

In how many seconds will Mr. Bender get happy?

Input

The first line contains four space-separated integers n, x, y, c (1 ≤ n, c ≤ 109; 1 ≤ x, y ≤ n; c ≤ n2).

Output

In a single line print a single integer — the answer to the problem.

Examples

Input

6 4 3 1


Output

0


Input

9 3 8 10


Output

2

Note

Initially the first test has one painted cell, so the answer is 0. In the second test all events will go as is shown on the figure. <image>.
#http://codeforces.ru/problemset/problem/255/D

def cells_dir(second):
    return sum(xrange(1,second*2,2))

def doubles(second, x, y, n):
    d = 0
    corners = [x+n-y+1, y+n-x+1, x+y, (n-x+1) + (n-y+1)]
    for corner in corners:
        if corner <= second:
            d += sum(xrange(1, second - corner + 2))
    return d

def cells_a(second, x, y, n):
    dcx = cells_dir(second-x+1) + cells_dir(second-n+x)
    dcy = cells_dir(second-y+1) + cells_dir(second-n+y) - doubles(second, x, y, n)
    return (sum(xrange(1,second*2,2))*2 + second*2 + 1)- dcx - dcy

n, x, y, c = map(int, raw_input().split())
second = 0
while cells_a(second, x, y, n) < c:
    second += 1000
high = second
low = second - 1000 if second !=0 else 0
second = 0

##if c == n**2

while high - low > 1:
    second = (high + low) / 2
    cells = cells_a(second, x, y, n)
    if  cells > c:
        high = second
    elif cells < c:
        low = second
    elif cells == n**2:
        high = second
    else:
        break
else: 
    if cells_a(low, x, y, n) > c:
        second = low
    else:
        second = high

print second
