import java.util.Scanner;
 
public class Main {
	public static void main(String[] args){
		Scanner in = new Scanner(System.in);
		int A = in.nextInt();	//1が書かれたカードの枚数
		int B = in.nextInt();	//0が書かれたカードの枚数
		int C = in.nextInt();	//-1が書かれたカードの枚数
		int K = in.nextInt();	//取る枚数
		int max = 0;			//最大値
 
		if(K<=A){			//取る枚数がA以下ならば
			max += K;
		}else{
          	max += A;
			K-=A;
          	if((K-B) >= 0){			//取る枚数がB以上ならば
				K-=B;
                if(K > 0){				//取る枚数が1以上ならば
					max -= K;
				}
			}
		}
		System.out.println(max);
	}
} import java.util.Scanner; Scanner java.util public class Main {
	public static void main(String[] args){
		Scanner in = new Scanner(System.in);
		int A = in.nextInt();	//1が書かれたカードの枚数
		int B = in.nextInt();	//0が書かれたカードの枚数
		int C = in.nextInt();	//-1が書かれたカードの枚数
		int K = in.nextInt();	//取る枚数
		int max = 0;			//最大値
 
		if(K<=A){			//取る枚数がA以下ならば
			max += K;
		}else{
          	max += A;
			K-=A;
          	if((K-B) >= 0){			//取る枚数がB以上ならば
				K-=B;
                if(K > 0){				//取る枚数が1以上ならば
					max -= K;
				}
			}
		}
		System.out.println(max);
	}
} Main public static void main(String[] args){
		Scanner in = new Scanner(System.in);
		int A = in.nextInt();	//1が書かれたカードの枚数
		int B = in.nextInt();	//0が書かれたカードの枚数
		int C = in.nextInt();	//-1が書かれたカードの枚数
		int K = in.nextInt();	//取る枚数
		int max = 0;			//最大値
 
		if(K<=A){			//取る枚数がA以下ならば
			max += K;
		}else{
          	max += A;
			K-=A;
          	if((K-B) >= 0){			//取る枚数がB以上ならば
				K-=B;
                if(K > 0){				//取る枚数が1以上ならば
					max -= K;
				}
			}
		}
		System.out.println(max);
	} main {
		Scanner in = new Scanner(System.in);
		int A = in.nextInt();	//1が書かれたカードの枚数
		int B = in.nextInt();	//0が書かれたカードの枚数
		int C = in.nextInt();	//-1が書かれたカードの枚数
		int K = in.nextInt();	//取る枚数
		int max = 0;			//最大値
 
		if(K<=A){			//取る枚数がA以下ならば
			max += K;
		}else{
          	max += A;
			K-=A;
          	if((K-B) >= 0){			//取る枚数がB以上ならば
				K-=B;
                if(K > 0){				//取る枚数が1以上ならば
					max -= K;
				}
			}
		}
		System.out.println(max);
	} Scanner in = new Scanner(System.in); in new Scanner(System.in) int A = in.nextInt(); A in.nextInt() in.nextInt in int B = in.nextInt(); B in.nextInt() in.nextInt in int C = in.nextInt(); C in.nextInt() in.nextInt in int K = in.nextInt(); K in.nextInt() in.nextInt in int max = 0; max 0 if(K<=A){			//取る枚数がA以下ならば
			max += K;
		}else{
          	max += A;
			K-=A;
          	if((K-B) >= 0){			//取る枚数がB以上ならば
				K-=B;
                if(K > 0){				//取る枚数が1以上ならば
					max -= K;
				}
			}
		} K<=A K A {			//取る枚数がA以下ならば
			max += K;
		} max += K max K {
          	max += A;
			K-=A;
          	if((K-B) >= 0){			//取る枚数がB以上ならば
				K-=B;
                if(K > 0){				//取る枚数が1以上ならば
					max -= K;
				}
			}
		} max += A max A K-=A K A if((K-B) >= 0){			//取る枚数がB以上ならば
				K-=B;
                if(K > 0){				//取る枚数が1以上ならば
					max -= K;
				}
			} (K-B) >= 0 (K-B) K B 0 {			//取る枚数がB以上ならば
				K-=B;
                if(K > 0){				//取る枚数が1以上ならば
					max -= K;
				}
			} K-=B K B if(K > 0){				//取る枚数が1以上ならば
					max -= K;
				} K > 0 K 0 {				//取る枚数が1以上ならば
					max -= K;
				} max -= K max K System.out.println(max) System.out.println System.out System System.out max String[] args args public class Main {
	public static void main(String[] args){
		Scanner in = new Scanner(System.in);
		int A = in.nextInt();	//1が書かれたカードの枚数
		int B = in.nextInt();	//0が書かれたカードの枚数
		int C = in.nextInt();	//-1が書かれたカードの枚数
		int K = in.nextInt();	//取る枚数
		int max = 0;			//最大値
 
		if(K<=A){			//取る枚数がA以下ならば
			max += K;
		}else{
          	max += A;
			K-=A;
          	if((K-B) >= 0){			//取る枚数がB以上ならば
				K-=B;
                if(K > 0){				//取る枚数が1以上ならば
					max -= K;
				}
			}
		}
		System.out.println(max);
	}
} public class Main {
	public static void main(String[] args){
		Scanner in = new Scanner(System.in);
		int A = in.nextInt();	//1が書かれたカードの枚数
		int B = in.nextInt();	//0が書かれたカードの枚数
		int C = in.nextInt();	//-1が書かれたカードの枚数
		int K = in.nextInt();	//取る枚数
		int max = 0;			//最大値
 
		if(K<=A){			//取る枚数がA以下ならば
			max += K;
		}else{
          	max += A;
			K-=A;
          	if((K-B) >= 0){			//取る枚数がB以上ならば
				K-=B;
                if(K > 0){				//取る枚数が1以上ならば
					max -= K;
				}
			}
		}
		System.out.println(max);
	}
} Main
import java.util.Scanner;
 
public class Main {
	public static void main(String[] args){
		Scanner in = new Scanner(System.in);
		int A = in.nextInt();	//1が書かれたカードの枚数
		int B = in.nextInt();	//0が書かれたカードの枚数
		int C = in.nextInt();	//-1が書かれたカードの枚数
		int K = in.nextInt();	//取る枚数
		int max = 0;			//最大値
 
		if(K<=A){			//取る枚数がA以下ならば
			max += K;
		}else{
          	max += A;
			K-=A;
          	if((K-B) >= 0){			//取る枚数がB以上ならば
				K-=B;
                if(K > 0){				//取る枚数が1以上ならば
					max -= K;
				}
			}
		}
		System.out.println(max);
	}
}