import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		int c = sc.nextInt();
		int k = sc.nextInt();

		int tmp_a = a;
		int tmp_b = b;
		int tmp_c = c;

		int ans = 0;
		sc.close();

		for (int i = 0; i < tmp_a; i++) {
			if (k == 0 || a == 0) {
				break;
			} else {
				ans ++;
				k --;
				a --;
			}
		}


		for (int i = 0; i < tmp_b; i++) {
			if (k == 0 || b == 0) {
				break;
			} else {
				k --;
				b --;
			}
		}


		for (int i = 0; i < tmp_c; i++) {
			if (k == 0 || c == 0) {
				break;
			} else {
				ans --;
				k --;
				c --;
			}
		}
		System.out.println(ans);


	}

} import java.util.Scanner; Scanner java.util public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		int c = sc.nextInt();
		int k = sc.nextInt();

		int tmp_a = a;
		int tmp_b = b;
		int tmp_c = c;

		int ans = 0;
		sc.close();

		for (int i = 0; i < tmp_a; i++) {
			if (k == 0 || a == 0) {
				break;
			} else {
				ans ++;
				k --;
				a --;
			}
		}


		for (int i = 0; i < tmp_b; i++) {
			if (k == 0 || b == 0) {
				break;
			} else {
				k --;
				b --;
			}
		}


		for (int i = 0; i < tmp_c; i++) {
			if (k == 0 || c == 0) {
				break;
			} else {
				ans --;
				k --;
				c --;
			}
		}
		System.out.println(ans);


	}

} Main public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		int c = sc.nextInt();
		int k = sc.nextInt();

		int tmp_a = a;
		int tmp_b = b;
		int tmp_c = c;

		int ans = 0;
		sc.close();

		for (int i = 0; i < tmp_a; i++) {
			if (k == 0 || a == 0) {
				break;
			} else {
				ans ++;
				k --;
				a --;
			}
		}


		for (int i = 0; i < tmp_b; i++) {
			if (k == 0 || b == 0) {
				break;
			} else {
				k --;
				b --;
			}
		}


		for (int i = 0; i < tmp_c; i++) {
			if (k == 0 || c == 0) {
				break;
			} else {
				ans --;
				k --;
				c --;
			}
		}
		System.out.println(ans);


	} main {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		int c = sc.nextInt();
		int k = sc.nextInt();

		int tmp_a = a;
		int tmp_b = b;
		int tmp_c = c;

		int ans = 0;
		sc.close();

		for (int i = 0; i < tmp_a; i++) {
			if (k == 0 || a == 0) {
				break;
			} else {
				ans ++;
				k --;
				a --;
			}
		}


		for (int i = 0; i < tmp_b; i++) {
			if (k == 0 || b == 0) {
				break;
			} else {
				k --;
				b --;
			}
		}


		for (int i = 0; i < tmp_c; i++) {
			if (k == 0 || c == 0) {
				break;
			} else {
				ans --;
				k --;
				c --;
			}
		}
		System.out.println(ans);


	} 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 tmp_a = a; tmp_a a int tmp_b = b; tmp_b b int tmp_c = c; tmp_c c int ans = 0; ans 0 sc.close() sc.close sc for (int i = 0; i < tmp_a; i++) {
			if (k == 0 || a == 0) {
				break;
			} else {
				ans ++;
				k --;
				a --;
			}
		} int i = 0; int i = 0; i 0 i < tmp_a i tmp_a i++ i++ i {
			if (k == 0 || a == 0) {
				break;
			} else {
				ans ++;
				k --;
				a --;
			}
		} {
			if (k == 0 || a == 0) {
				break;
			} else {
				ans ++;
				k --;
				a --;
			}
		} if (k == 0 || a == 0) {
				break;
			} else {
				ans ++;
				k --;
				a --;
			} k == 0 || a == 0 k == 0 k 0 a == 0 a 0 {
				break;
			} break; {
				ans ++;
				k --;
				a --;
			} ans ++ ans k -- k a -- a for (int i = 0; i < tmp_b; i++) {
			if (k == 0 || b == 0) {
				break;
			} else {
				k --;
				b --;
			}
		} int i = 0; int i = 0; i 0 i < tmp_b i tmp_b i++ i++ i {
			if (k == 0 || b == 0) {
				break;
			} else {
				k --;
				b --;
			}
		} {
			if (k == 0 || b == 0) {
				break;
			} else {
				k --;
				b --;
			}
		} if (k == 0 || b == 0) {
				break;
			} else {
				k --;
				b --;
			} k == 0 || b == 0 k == 0 k 0 b == 0 b 0 {
				break;
			} break; {
				k --;
				b --;
			} k -- k b -- b for (int i = 0; i < tmp_c; i++) {
			if (k == 0 || c == 0) {
				break;
			} else {
				ans --;
				k --;
				c --;
			}
		} int i = 0; int i = 0; i 0 i < tmp_c i tmp_c i++ i++ i {
			if (k == 0 || c == 0) {
				break;
			} else {
				ans --;
				k --;
				c --;
			}
		} {
			if (k == 0 || c == 0) {
				break;
			} else {
				ans --;
				k --;
				c --;
			}
		} if (k == 0 || c == 0) {
				break;
			} else {
				ans --;
				k --;
				c --;
			} k == 0 || c == 0 k == 0 k 0 c == 0 c 0 {
				break;
			} break; {
				ans --;
				k --;
				c --;
			} ans -- ans k -- k c -- c System.out.println(ans) System.out.println System.out System System.out ans String[] args args public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		int c = sc.nextInt();
		int k = sc.nextInt();

		int tmp_a = a;
		int tmp_b = b;
		int tmp_c = c;

		int ans = 0;
		sc.close();

		for (int i = 0; i < tmp_a; i++) {
			if (k == 0 || a == 0) {
				break;
			} else {
				ans ++;
				k --;
				a --;
			}
		}


		for (int i = 0; i < tmp_b; i++) {
			if (k == 0 || b == 0) {
				break;
			} else {
				k --;
				b --;
			}
		}


		for (int i = 0; i < tmp_c; i++) {
			if (k == 0 || c == 0) {
				break;
			} else {
				ans --;
				k --;
				c --;
			}
		}
		System.out.println(ans);


	}

} public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		int c = sc.nextInt();
		int k = sc.nextInt();

		int tmp_a = a;
		int tmp_b = b;
		int tmp_c = c;

		int ans = 0;
		sc.close();

		for (int i = 0; i < tmp_a; i++) {
			if (k == 0 || a == 0) {
				break;
			} else {
				ans ++;
				k --;
				a --;
			}
		}


		for (int i = 0; i < tmp_b; i++) {
			if (k == 0 || b == 0) {
				break;
			} else {
				k --;
				b --;
			}
		}


		for (int i = 0; i < tmp_c; i++) {
			if (k == 0 || c == 0) {
				break;
			} else {
				ans --;
				k --;
				c --;
			}
		}
		System.out.println(ans);


	}

} Main
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		int c = sc.nextInt();
		int k = sc.nextInt();

		int tmp_a = a;
		int tmp_b = b;
		int tmp_c = c;

		int ans = 0;
		sc.close();

		for (int i = 0; i < tmp_a; i++) {
			if (k == 0 || a == 0) {
				break;
			} else {
				ans ++;
				k --;
				a --;
			}
		}


		for (int i = 0; i < tmp_b; i++) {
			if (k == 0 || b == 0) {
				break;
			} else {
				k --;
				b --;
			}
		}


		for (int i = 0; i < tmp_c; i++) {
			if (k == 0 || c == 0) {
				break;
			} else {
				ans --;
				k --;
				c --;
			}
		}
		System.out.println(ans);


	}

}