# -*- coding: utf-8 -*-

# 標準入力の取得

A, B, C, K = list(map(int, input().split()))



# 求解処理

result = int()

if K <= A:

    result = K

elif A < K and K <= A + B:

    result = A

elif A + B < K and K <= A + B + C:

    result = 2*A + B - K



# 結果出力

print(result)

# -*- coding: utf-8 -*-





def get_input() -> tuple:

    """標準入力の取得



    Returns:

        tuple -- 標準入力

    """

    A, B, C, K = list(map(int, input().split()))

    return A, B, C, K





def main(A: int, B: int, C: int, K: int) -> None:

    """求解処理.

    Kの値で場合分けする.



    Arguments:

        A {int} -- 整数

        B {int} -- 整数

        C {int} -- 整数

        K {int} -- 整数

    """

    result = int()

    if K <= A:

        result = K

    elif A < K and K <= A + B:

        result = A

    elif A + B < K and K <= A + B + C:

        result = 2*A + B - K



    # 結果出力

    print(result)





if __name__ == "__main__":

    A, B, C, K = get_input()

    main(A, B, C, K)

# -*- coding: utf-8 -*-
# 標準入力の取得
A, B, C, K = list(map(int, input().split()))
# 求解処理
result = int()
if K <= A:
    result = K
elif A < K and K <= A + B:
    result = A
elif A + B < K and K <= A + B + C:
    result = 2 * A + B - K
# 結果出力
print(result)

# -*- coding: utf-8 -*-
def get_input() -> tuple:
    """標準入力の取得
    Returns:
        tuple -- 標準入力
    """
    A, B, C, K = list(map(int, input().split()))
    return A, B, C, K


def main(A: int, B: int, C: int, K: int) -> None:
    """求解処理.
    Kの値で場合分けする.
    Arguments:
        A {int} -- 整数
        B {int} -- 整数
        C {int} -- 整数
        K {int} -- 整数
    """
    result = int()
    if K <= A:
        result = K
    elif A < K and K <= A + B:
        result = A
    elif A + B < K and K <= A + B + C:
        result = 2 * A + B - K
    # 結果出力
    print(result)


if __name__ == "__main__":
    A, B, C, K = get_input()
    main(A, B, C, K)

-# 標準入力の取得 -A, B, C, K = list(map(int, input().split())) -# 求解処理 -result = int() -if K <= A: -    result = K -elif A < K and K <= A + B: -    result = A -elif A + B < K and K <= A + B + C: -    result = 2 * A + B - K -# 結果出力 -print(result) +def get_input() -> tuple: +    """標準入力の取得 +    Returns: +        tuple -- 標準入力 +    """ +    A, B, C, K = list(map(int, input().split())) +    return A, B, C, K + + +def main(A: int, B: int, C: int, K: int) -> None: +    """求解処理. +    Kの値で場合分けする. +    Arguments: +        A {int} -- 整数 +        B {int} -- 整数 +        C {int} -- 整数 +        K {int} -- 整数 +    """ +    result = int() +    if K <= A: +        result = K +    elif A < K and K <= A + B: +        result = A +    elif A + B < K and K <= A + B + C: +        result = 2 * A + B - K +    # 結果出力 +    print(result) + + +if __name__ == "__main__": +    A, B, C, K = get_input() +    main(A, B, C, K)