import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);

        int A = sc.nextInt();
        int B = sc.nextInt();
        int C = sc.nextInt();
        int K = sc.nextInt();

        int maxSum = 0;

        int availK = K;
        if(availK - A >= 0){
            availK -= A;
            maxSum += A;
        }
        else if(availK > 0){
            maxSum += availK;
            availK = 0;
        }
        if(availK - B >= 0){
            availK -= B;
        }
        else if(availK > 0){
            availK = 0;
        }
        if(availK - C >= 0){
            availK -= C;
            maxSum -= C;
        }
        else if(availK > 0){
            maxSum -= availK;
            availK = 0;
        }
        System.out.println(maxSum);
    }
} import java.util.Scanner; Scanner java.util public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);

        int A = sc.nextInt();
        int B = sc.nextInt();
        int C = sc.nextInt();
        int K = sc.nextInt();

        int maxSum = 0;

        int availK = K;
        if(availK - A >= 0){
            availK -= A;
            maxSum += A;
        }
        else if(availK > 0){
            maxSum += availK;
            availK = 0;
        }
        if(availK - B >= 0){
            availK -= B;
        }
        else if(availK > 0){
            availK = 0;
        }
        if(availK - C >= 0){
            availK -= C;
            maxSum -= C;
        }
        else if(availK > 0){
            maxSum -= availK;
            availK = 0;
        }
        System.out.println(maxSum);
    }
} Main public static void main(String[] args){
        Scanner sc = new Scanner(System.in);

        int A = sc.nextInt();
        int B = sc.nextInt();
        int C = sc.nextInt();
        int K = sc.nextInt();

        int maxSum = 0;

        int availK = K;
        if(availK - A >= 0){
            availK -= A;
            maxSum += A;
        }
        else if(availK > 0){
            maxSum += availK;
            availK = 0;
        }
        if(availK - B >= 0){
            availK -= B;
        }
        else if(availK > 0){
            availK = 0;
        }
        if(availK - C >= 0){
            availK -= C;
            maxSum -= C;
        }
        else if(availK > 0){
            maxSum -= availK;
            availK = 0;
        }
        System.out.println(maxSum);
    } main {
        Scanner sc = new Scanner(System.in);

        int A = sc.nextInt();
        int B = sc.nextInt();
        int C = sc.nextInt();
        int K = sc.nextInt();

        int maxSum = 0;

        int availK = K;
        if(availK - A >= 0){
            availK -= A;
            maxSum += A;
        }
        else if(availK > 0){
            maxSum += availK;
            availK = 0;
        }
        if(availK - B >= 0){
            availK -= B;
        }
        else if(availK > 0){
            availK = 0;
        }
        if(availK - C >= 0){
            availK -= C;
            maxSum -= C;
        }
        else if(availK > 0){
            maxSum -= availK;
            availK = 0;
        }
        System.out.println(maxSum);
    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int A = sc.nextInt(); A sc.nextInt() sc.nextInt sc int B = sc.nextInt(); B sc.nextInt() sc.nextInt sc int C = sc.nextInt(); C sc.nextInt() sc.nextInt sc int K = sc.nextInt(); K sc.nextInt() sc.nextInt sc int maxSum = 0; maxSum 0 int availK = K; availK K if(availK - A >= 0){
            availK -= A;
            maxSum += A;
        }
        else if(availK > 0){
            maxSum += availK;
            availK = 0;
        } availK - A >= 0 availK - A availK A 0 {
            availK -= A;
            maxSum += A;
        } availK -= A availK A maxSum += A maxSum A if(availK > 0){
            maxSum += availK;
            availK = 0;
        } availK > 0 availK 0 {
            maxSum += availK;
            availK = 0;
        } maxSum += availK maxSum availK availK = 0 availK 0 if(availK - B >= 0){
            availK -= B;
        }
        else if(availK > 0){
            availK = 0;
        } availK - B >= 0 availK - B availK B 0 {
            availK -= B;
        } availK -= B availK B if(availK > 0){
            availK = 0;
        } availK > 0 availK 0 {
            availK = 0;
        } availK = 0 availK 0 if(availK - C >= 0){
            availK -= C;
            maxSum -= C;
        }
        else if(availK > 0){
            maxSum -= availK;
            availK = 0;
        } availK - C >= 0 availK - C availK C 0 {
            availK -= C;
            maxSum -= C;
        } availK -= C availK C maxSum -= C maxSum C if(availK > 0){
            maxSum -= availK;
            availK = 0;
        } availK > 0 availK 0 {
            maxSum -= availK;
            availK = 0;
        } maxSum -= availK maxSum availK availK = 0 availK 0 System.out.println(maxSum) System.out.println System.out System System.out maxSum String[] args args public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);

        int A = sc.nextInt();
        int B = sc.nextInt();
        int C = sc.nextInt();
        int K = sc.nextInt();

        int maxSum = 0;

        int availK = K;
        if(availK - A >= 0){
            availK -= A;
            maxSum += A;
        }
        else if(availK > 0){
            maxSum += availK;
            availK = 0;
        }
        if(availK - B >= 0){
            availK -= B;
        }
        else if(availK > 0){
            availK = 0;
        }
        if(availK - C >= 0){
            availK -= C;
            maxSum -= C;
        }
        else if(availK > 0){
            maxSum -= availK;
            availK = 0;
        }
        System.out.println(maxSum);
    }
} public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);

        int A = sc.nextInt();
        int B = sc.nextInt();
        int C = sc.nextInt();
        int K = sc.nextInt();

        int maxSum = 0;

        int availK = K;
        if(availK - A >= 0){
            availK -= A;
            maxSum += A;
        }
        else if(availK > 0){
            maxSum += availK;
            availK = 0;
        }
        if(availK - B >= 0){
            availK -= B;
        }
        else if(availK > 0){
            availK = 0;
        }
        if(availK - C >= 0){
            availK -= C;
            maxSum -= C;
        }
        else if(availK > 0){
            maxSum -= availK;
            availK = 0;
        }
        System.out.println(maxSum);
    }
} Main
import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);

        int A = sc.nextInt();
        int B = sc.nextInt();
        int C = sc.nextInt();
        int K = sc.nextInt();

        int maxSum = 0;

        int availK = K;
        if(availK - A >= 0){
            availK -= A;
            maxSum += A;
        }
        else if(availK > 0){
            maxSum += availK;
            availK = 0;
        }
        if(availK - B >= 0){
            availK -= B;
        }
        else if(availK > 0){
            availK = 0;
        }
        if(availK - C >= 0){
            availK -= C;
            maxSum -= C;
        }
        else if(availK > 0){
            maxSum -= availK;
            availK = 0;
        }
        System.out.println(maxSum);
    }
}