import java.util.Scanner;

public class Main {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);

		int A = sc.nextInt(); //1が書かれたカードの枚数
		int B = sc.nextInt(); //0が書かれたカードの枚数
		int C = sc.nextInt(); //-1が書かれたカードの枚数
		int K = sc.nextInt(); //選ぶカードの枚数
		int sum = 0; //選んだカードの合計
		String flag = null;

		if(A >= K) { //選ぶカードは全部1
			flag = "A";
		}else if(A + B >= K) { //選ぶカードは1と0
			flag = "B";
		}else if (A + B + C >= K) { //選ぶカードは1と0と-1
			flag = "C";
		}else { //K = 0
			sum = 0;
		}

		switch(flag) {
		case "A":
			sum = K;
			break;
		case "B":
			sum = A;
			break;
		case "C":
			sum = A - (K - A - B);
		}

		System.out.print(sum);
	}

} 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(); //1が書かれたカードの枚数
		int B = sc.nextInt(); //0が書かれたカードの枚数
		int C = sc.nextInt(); //-1が書かれたカードの枚数
		int K = sc.nextInt(); //選ぶカードの枚数
		int sum = 0; //選んだカードの合計
		String flag = null;

		if(A >= K) { //選ぶカードは全部1
			flag = "A";
		}else if(A + B >= K) { //選ぶカードは1と0
			flag = "B";
		}else if (A + B + C >= K) { //選ぶカードは1と0と-1
			flag = "C";
		}else { //K = 0
			sum = 0;
		}

		switch(flag) {
		case "A":
			sum = K;
			break;
		case "B":
			sum = A;
			break;
		case "C":
			sum = A - (K - A - B);
		}

		System.out.print(sum);
	}

} Main public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);

		int A = sc.nextInt(); //1が書かれたカードの枚数
		int B = sc.nextInt(); //0が書かれたカードの枚数
		int C = sc.nextInt(); //-1が書かれたカードの枚数
		int K = sc.nextInt(); //選ぶカードの枚数
		int sum = 0; //選んだカードの合計
		String flag = null;

		if(A >= K) { //選ぶカードは全部1
			flag = "A";
		}else if(A + B >= K) { //選ぶカードは1と0
			flag = "B";
		}else if (A + B + C >= K) { //選ぶカードは1と0と-1
			flag = "C";
		}else { //K = 0
			sum = 0;
		}

		switch(flag) {
		case "A":
			sum = K;
			break;
		case "B":
			sum = A;
			break;
		case "C":
			sum = A - (K - A - B);
		}

		System.out.print(sum);
	} main {

		Scanner sc = new Scanner(System.in);

		int A = sc.nextInt(); //1が書かれたカードの枚数
		int B = sc.nextInt(); //0が書かれたカードの枚数
		int C = sc.nextInt(); //-1が書かれたカードの枚数
		int K = sc.nextInt(); //選ぶカードの枚数
		int sum = 0; //選んだカードの合計
		String flag = null;

		if(A >= K) { //選ぶカードは全部1
			flag = "A";
		}else if(A + B >= K) { //選ぶカードは1と0
			flag = "B";
		}else if (A + B + C >= K) { //選ぶカードは1と0と-1
			flag = "C";
		}else { //K = 0
			sum = 0;
		}

		switch(flag) {
		case "A":
			sum = K;
			break;
		case "B":
			sum = A;
			break;
		case "C":
			sum = A - (K - A - B);
		}

		System.out.print(sum);
	} 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 sum = 0; sum 0 String flag = null; flag null if(A >= K) { //選ぶカードは全部1
			flag = "A";
		}else if(A + B >= K) { //選ぶカードは1と0
			flag = "B";
		}else if (A + B + C >= K) { //選ぶカードは1と0と-1
			flag = "C";
		}else { //K = 0
			sum = 0;
		} A >= K A K { //選ぶカードは全部1
			flag = "A";
		} flag = "A" flag "A" if(A + B >= K) { //選ぶカードは1と0
			flag = "B";
		}else if (A + B + C >= K) { //選ぶカードは1と0と-1
			flag = "C";
		}else { //K = 0
			sum = 0;
		} A + B >= K A + B A B K { //選ぶカードは1と0
			flag = "B";
		} flag = "B" flag "B" if (A + B + C >= K) { //選ぶカードは1と0と-1
			flag = "C";
		}else { //K = 0
			sum = 0;
		} A + B + C >= K A + B + C A + B + C A B C K { //選ぶカードは1と0と-1
			flag = "C";
		} flag = "C" flag "C" { //K = 0
			sum = 0;
		} sum = 0 sum 0 switch(flag) {
		case "A":
			sum = K;
			break;
		case "B":
			sum = A;
			break;
		case "C":
			sum = A - (K - A - B);
		} flag case "A": "A" case "A": sum = K sum K break; case "B": "B" case "B": sum = A sum A break; case "C": "C" case "C": sum = A - (K - A - B) sum A - (K - A - B) A (K - A - B) K - A - B K A B System.out.print(sum) System.out.print System.out System System.out sum String[] args args public class Main {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);

		int A = sc.nextInt(); //1が書かれたカードの枚数
		int B = sc.nextInt(); //0が書かれたカードの枚数
		int C = sc.nextInt(); //-1が書かれたカードの枚数
		int K = sc.nextInt(); //選ぶカードの枚数
		int sum = 0; //選んだカードの合計
		String flag = null;

		if(A >= K) { //選ぶカードは全部1
			flag = "A";
		}else if(A + B >= K) { //選ぶカードは1と0
			flag = "B";
		}else if (A + B + C >= K) { //選ぶカードは1と0と-1
			flag = "C";
		}else { //K = 0
			sum = 0;
		}

		switch(flag) {
		case "A":
			sum = K;
			break;
		case "B":
			sum = A;
			break;
		case "C":
			sum = A - (K - A - B);
		}

		System.out.print(sum);
	}

} public class Main {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);

		int A = sc.nextInt(); //1が書かれたカードの枚数
		int B = sc.nextInt(); //0が書かれたカードの枚数
		int C = sc.nextInt(); //-1が書かれたカードの枚数
		int K = sc.nextInt(); //選ぶカードの枚数
		int sum = 0; //選んだカードの合計
		String flag = null;

		if(A >= K) { //選ぶカードは全部1
			flag = "A";
		}else if(A + B >= K) { //選ぶカードは1と0
			flag = "B";
		}else if (A + B + C >= K) { //選ぶカードは1と0と-1
			flag = "C";
		}else { //K = 0
			sum = 0;
		}

		switch(flag) {
		case "A":
			sum = K;
			break;
		case "B":
			sum = A;
			break;
		case "C":
			sum = A - (K - A - B);
		}

		System.out.print(sum);
	}

} Main
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);

		int A = sc.nextInt(); //1が書かれたカードの枚数
		int B = sc.nextInt(); //0が書かれたカードの枚数
		int C = sc.nextInt(); //-1が書かれたカードの枚数
		int K = sc.nextInt(); //選ぶカードの枚数
		int sum = 0; //選んだカードの合計
		String flag = null;

		if(A >= K) { //選ぶカードは全部1
			flag = "A";
		}else if(A + B >= K) { //選ぶカードは1と0
			flag = "B";
		}else if (A + B + C >= K) { //選ぶカードは1と0と-1
			flag = "C";
		}else { //K = 0
			sum = 0;
		}

		switch(flag) {
		case "A":
			sum = K;
			break;
		case "B":
			sum = A;
			break;
		case "C":
			sum = A - (K - A - B);
		}

		System.out.print(sum);
	}

}
