import java.util.Scanner;
public class Main {
	public static void main (String[] args) {

//	パターン1（Aから順番に使って足していく）
//	変数を読み込む
		Scanner sc = new Scanner(System.in);
		int A = sc.nextInt();
		int B = sc.nextInt();
		int C = sc.nextInt();
		int K = sc.nextInt();

		int total = 0;  //合計を入れる変数

//	Aから順に、合計K枚になるまで足していく
		if(A >= K) {  //A>KならKの枚数を表示で終了
			System.out.println(total=K);
			return;
		}
		else {  //A＜Kの場合は続く
			total = A;
		}

//	BがK-Aより多いか少ないかで判断
		if(B < K-A) {  //B<=K-AならK-A-B枚分-1をする
			System.out.println(total-= K-A-B);
		}
		else {  //B>K-Aならそのまま表示
			System.out.println(total);
		}
	}
} import java.util.Scanner; Scanner java.util public class Main {
	public static void main (String[] args) {

//	パターン1（Aから順番に使って足していく）
//	変数を読み込む
		Scanner sc = new Scanner(System.in);
		int A = sc.nextInt();
		int B = sc.nextInt();
		int C = sc.nextInt();
		int K = sc.nextInt();

		int total = 0;  //合計を入れる変数

//	Aから順に、合計K枚になるまで足していく
		if(A >= K) {  //A>KならKの枚数を表示で終了
			System.out.println(total=K);
			return;
		}
		else {  //A＜Kの場合は続く
			total = A;
		}

//	BがK-Aより多いか少ないかで判断
		if(B < K-A) {  //B<=K-AならK-A-B枚分-1をする
			System.out.println(total-= K-A-B);
		}
		else {  //B>K-Aならそのまま表示
			System.out.println(total);
		}
	}
} Main public static void main (String[] args) {

//	パターン1（Aから順番に使って足していく）
//	変数を読み込む
		Scanner sc = new Scanner(System.in);
		int A = sc.nextInt();
		int B = sc.nextInt();
		int C = sc.nextInt();
		int K = sc.nextInt();

		int total = 0;  //合計を入れる変数

//	Aから順に、合計K枚になるまで足していく
		if(A >= K) {  //A>KならKの枚数を表示で終了
			System.out.println(total=K);
			return;
		}
		else {  //A＜Kの場合は続く
			total = A;
		}

//	BがK-Aより多いか少ないかで判断
		if(B < K-A) {  //B<=K-AならK-A-B枚分-1をする
			System.out.println(total-= K-A-B);
		}
		else {  //B>K-Aならそのまま表示
			System.out.println(total);
		}
	} main {

//	パターン1（Aから順番に使って足していく）
//	変数を読み込む
		Scanner sc = new Scanner(System.in);
		int A = sc.nextInt();
		int B = sc.nextInt();
		int C = sc.nextInt();
		int K = sc.nextInt();

		int total = 0;  //合計を入れる変数

//	Aから順に、合計K枚になるまで足していく
		if(A >= K) {  //A>KならKの枚数を表示で終了
			System.out.println(total=K);
			return;
		}
		else {  //A＜Kの場合は続く
			total = A;
		}

//	BがK-Aより多いか少ないかで判断
		if(B < K-A) {  //B<=K-AならK-A-B枚分-1をする
			System.out.println(total-= K-A-B);
		}
		else {  //B>K-Aならそのまま表示
			System.out.println(total);
		}
	} 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 total = 0; total 0 if(A >= K) {  //A>KならKの枚数を表示で終了
			System.out.println(total=K);
			return;
		}
		else {  //A＜Kの場合は続く
			total = A;
		} A >= K A K {  //A>KならKの枚数を表示で終了
			System.out.println(total=K);
			return;
		} System.out.println(total=K) System.out.println System.out System System.out total=K total K return; {  //A＜Kの場合は続く
			total = A;
		} total = A total A if(B < K-A) {  //B<=K-AならK-A-B枚分-1をする
			System.out.println(total-= K-A-B);
		}
		else {  //B>K-Aならそのまま表示
			System.out.println(total);
		} B < K-A B K-A K A {  //B<=K-AならK-A-B枚分-1をする
			System.out.println(total-= K-A-B);
		} System.out.println(total-= K-A-B) System.out.println System.out System System.out total-= K-A-B total K-A-B K-A-B K A B {  //B>K-Aならそのまま表示
			System.out.println(total);
		} System.out.println(total) System.out.println System.out System System.out total String[] args args public class Main {
	public static void main (String[] args) {

//	パターン1（Aから順番に使って足していく）
//	変数を読み込む
		Scanner sc = new Scanner(System.in);
		int A = sc.nextInt();
		int B = sc.nextInt();
		int C = sc.nextInt();
		int K = sc.nextInt();

		int total = 0;  //合計を入れる変数

//	Aから順に、合計K枚になるまで足していく
		if(A >= K) {  //A>KならKの枚数を表示で終了
			System.out.println(total=K);
			return;
		}
		else {  //A＜Kの場合は続く
			total = A;
		}

//	BがK-Aより多いか少ないかで判断
		if(B < K-A) {  //B<=K-AならK-A-B枚分-1をする
			System.out.println(total-= K-A-B);
		}
		else {  //B>K-Aならそのまま表示
			System.out.println(total);
		}
	}
} public class Main {
	public static void main (String[] args) {

//	パターン1（Aから順番に使って足していく）
//	変数を読み込む
		Scanner sc = new Scanner(System.in);
		int A = sc.nextInt();
		int B = sc.nextInt();
		int C = sc.nextInt();
		int K = sc.nextInt();

		int total = 0;  //合計を入れる変数

//	Aから順に、合計K枚になるまで足していく
		if(A >= K) {  //A>KならKの枚数を表示で終了
			System.out.println(total=K);
			return;
		}
		else {  //A＜Kの場合は続く
			total = A;
		}

//	BがK-Aより多いか少ないかで判断
		if(B < K-A) {  //B<=K-AならK-A-B枚分-1をする
			System.out.println(total-= K-A-B);
		}
		else {  //B>K-Aならそのまま表示
			System.out.println(total);
		}
	}
} Main
import java.util.Scanner;
public class Main {
	public static void main (String[] args) {

//	パターン1（Aから順番に使って足していく）
//	変数を読み込む
		Scanner sc = new Scanner(System.in);
		int A = sc.nextInt();
		int B = sc.nextInt();
		int C = sc.nextInt();
		int K = sc.nextInt();

		int total = 0;  //合計を入れる変数

//	Aから順に、合計K枚になるまで足していく
		if(A >= K) {  //A>KならKの枚数を表示で終了
			System.out.println(total=K);
			return;
		}
		else {  //A＜Kの場合は続く
			total = A;
		}

//	BがK-Aより多いか少ないかで判断
		if(B < K-A) {  //B<=K-AならK-A-B枚分-1をする
			System.out.println(total-= K-A-B);
		}
		else {  //B>K-Aならそのまま表示
			System.out.println(total);
		}
	}
}