

import java.util.*;
import java.io.*;


public class Main {
        public static void main(String[] args) {
            MyScanner sc = new MyScanner();
            //out = new PrintWriter(new java.io.BufferedOutputStream(System.out));
            int a = sc.nextInt();
            int b = sc.nextInt();
            int c = sc.nextInt();
            int k = sc.nextInt();
            int count = 0;
            if (a >= k) {
                System.out.println(k);
            } else {
                count += a;
                k -= a;
                if (b >= k) {
                    System.out.println(count);
                } else {
                    System.out.println(count - (k - b));
                }
            }



        }


       // public static PrintWriter out;

        public static class MyScanner {
            BufferedReader br;
            StringTokenizer st;

            public MyScanner() {
                br = new BufferedReader(new InputStreamReader(System.in));
            }

            String next() {
                while (st == null || !st.hasMoreElements()) {
                    try {
                        st = new StringTokenizer(br.readLine());
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                return st.nextToken();
            }

            int nextInt() {
                return Integer.parseInt(next());
            }

            long nextLong() {
                return Long.parseLong(next());
            }

            double nextDouble() {
                return Double.parseDouble(next());
            }

            String nextLine(){
                String str = "";
                try {
                    str = br.readLine();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                return str;
            }

        }
    } import java.util.*; util.* java import java.io.*; io.* java public class Main {
        public static void main(String[] args) {
            MyScanner sc = new MyScanner();
            //out = new PrintWriter(new java.io.BufferedOutputStream(System.out));
            int a = sc.nextInt();
            int b = sc.nextInt();
            int c = sc.nextInt();
            int k = sc.nextInt();
            int count = 0;
            if (a >= k) {
                System.out.println(k);
            } else {
                count += a;
                k -= a;
                if (b >= k) {
                    System.out.println(count);
                } else {
                    System.out.println(count - (k - b));
                }
            }



        }


       // public static PrintWriter out;

        public static class MyScanner {
            BufferedReader br;
            StringTokenizer st;

            public MyScanner() {
                br = new BufferedReader(new InputStreamReader(System.in));
            }

            String next() {
                while (st == null || !st.hasMoreElements()) {
                    try {
                        st = new StringTokenizer(br.readLine());
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                return st.nextToken();
            }

            int nextInt() {
                return Integer.parseInt(next());
            }

            long nextLong() {
                return Long.parseLong(next());
            }

            double nextDouble() {
                return Double.parseDouble(next());
            }

            String nextLine(){
                String str = "";
                try {
                    str = br.readLine();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                return str;
            }

        }
    } Main public static void main(String[] args) {
            MyScanner sc = new MyScanner();
            //out = new PrintWriter(new java.io.BufferedOutputStream(System.out));
            int a = sc.nextInt();
            int b = sc.nextInt();
            int c = sc.nextInt();
            int k = sc.nextInt();
            int count = 0;
            if (a >= k) {
                System.out.println(k);
            } else {
                count += a;
                k -= a;
                if (b >= k) {
                    System.out.println(count);
                } else {
                    System.out.println(count - (k - b));
                }
            }



        } main {
            MyScanner sc = new MyScanner();
            //out = new PrintWriter(new java.io.BufferedOutputStream(System.out));
            int a = sc.nextInt();
            int b = sc.nextInt();
            int c = sc.nextInt();
            int k = sc.nextInt();
            int count = 0;
            if (a >= k) {
                System.out.println(k);
            } else {
                count += a;
                k -= a;
                if (b >= k) {
                    System.out.println(count);
                } else {
                    System.out.println(count - (k - b));
                }
            }



        } MyScanner sc = new MyScanner(); sc new MyScanner() 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 count = 0; count 0 if (a >= k) {
                System.out.println(k);
            } else {
                count += a;
                k -= a;
                if (b >= k) {
                    System.out.println(count);
                } else {
                    System.out.println(count - (k - b));
                }
            } a >= k a k {
                System.out.println(k);
            } System.out.println(k) System.out.println System.out System System.out k {
                count += a;
                k -= a;
                if (b >= k) {
                    System.out.println(count);
                } else {
                    System.out.println(count - (k - b));
                }
            } count += a count a k -= a k a if (b >= k) {
                    System.out.println(count);
                } else {
                    System.out.println(count - (k - b));
                } b >= k b k {
                    System.out.println(count);
                } System.out.println(count) System.out.println System.out System System.out count {
                    System.out.println(count - (k - b));
                } System.out.println(count - (k - b)) System.out.println System.out System System.out count - (k - b) count (k - b) k b String[] args args public static class MyScanner {
            BufferedReader br;
            StringTokenizer st;

            public MyScanner() {
                br = new BufferedReader(new InputStreamReader(System.in));
            }

            String next() {
                while (st == null || !st.hasMoreElements()) {
                    try {
                        st = new StringTokenizer(br.readLine());
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                return st.nextToken();
            }

            int nextInt() {
                return Integer.parseInt(next());
            }

            long nextLong() {
                return Long.parseLong(next());
            }

            double nextDouble() {
                return Double.parseDouble(next());
            }

            String nextLine(){
                String str = "";
                try {
                    str = br.readLine();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                return str;
            }

        } MyScanner BufferedReader br; br StringTokenizer st; st public MyScanner() {
                br = new BufferedReader(new InputStreamReader(System.in));
            } MyScanner {
                br = new BufferedReader(new InputStreamReader(System.in));
            } br = new BufferedReader(new InputStreamReader(System.in)) br new BufferedReader(new InputStreamReader(System.in)) String next() {
                while (st == null || !st.hasMoreElements()) {
                    try {
                        st = new StringTokenizer(br.readLine());
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                return st.nextToken();
            } next {
                while (st == null || !st.hasMoreElements()) {
                    try {
                        st = new StringTokenizer(br.readLine());
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                return st.nextToken();
            } while (st == null || !st.hasMoreElements()) {
                    try {
                        st = new StringTokenizer(br.readLine());
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                } st == null || !st.hasMoreElements() st == null st null !st.hasMoreElements() st.hasMoreElements() st.hasMoreElements st {
                    try {
                        st = new StringTokenizer(br.readLine());
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                } try {
                        st = new StringTokenizer(br.readLine());
                    } catch (IOException e) {
                        e.printStackTrace();
                    } catch (IOException e) {
                        e.printStackTrace();
                    } IOException e {
                        e.printStackTrace();
                    } e.printStackTrace() e.printStackTrace e {
                        st = new StringTokenizer(br.readLine());
                    } st = new StringTokenizer(br.readLine()) st new StringTokenizer(br.readLine()) return st.nextToken(); st.nextToken() st.nextToken st int nextInt() {
                return Integer.parseInt(next());
            } nextInt {
                return Integer.parseInt(next());
            } return Integer.parseInt(next()); Integer.parseInt(next()) Integer.parseInt Integer next() next long nextLong() {
                return Long.parseLong(next());
            } nextLong {
                return Long.parseLong(next());
            } return Long.parseLong(next()); Long.parseLong(next()) Long.parseLong Long next() next double nextDouble() {
                return Double.parseDouble(next());
            } nextDouble {
                return Double.parseDouble(next());
            } return Double.parseDouble(next()); Double.parseDouble(next()) Double.parseDouble Double next() next String nextLine(){
                String str = "";
                try {
                    str = br.readLine();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                return str;
            } nextLine {
                String str = "";
                try {
                    str = br.readLine();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                return str;
            } String str = ""; str "" try {
                    str = br.readLine();
                } catch (IOException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                } IOException e {
                    e.printStackTrace();
                } e.printStackTrace() e.printStackTrace e {
                    str = br.readLine();
                } str = br.readLine() str br.readLine() br.readLine br return str; str public class Main {
        public static void main(String[] args) {
            MyScanner sc = new MyScanner();
            //out = new PrintWriter(new java.io.BufferedOutputStream(System.out));
            int a = sc.nextInt();
            int b = sc.nextInt();
            int c = sc.nextInt();
            int k = sc.nextInt();
            int count = 0;
            if (a >= k) {
                System.out.println(k);
            } else {
                count += a;
                k -= a;
                if (b >= k) {
                    System.out.println(count);
                } else {
                    System.out.println(count - (k - b));
                }
            }



        }


       // public static PrintWriter out;

        public static class MyScanner {
            BufferedReader br;
            StringTokenizer st;

            public MyScanner() {
                br = new BufferedReader(new InputStreamReader(System.in));
            }

            String next() {
                while (st == null || !st.hasMoreElements()) {
                    try {
                        st = new StringTokenizer(br.readLine());
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                return st.nextToken();
            }

            int nextInt() {
                return Integer.parseInt(next());
            }

            long nextLong() {
                return Long.parseLong(next());
            }

            double nextDouble() {
                return Double.parseDouble(next());
            }

            String nextLine(){
                String str = "";
                try {
                    str = br.readLine();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                return str;
            }

        }
    } public class Main {
        public static void main(String[] args) {
            MyScanner sc = new MyScanner();
            //out = new PrintWriter(new java.io.BufferedOutputStream(System.out));
            int a = sc.nextInt();
            int b = sc.nextInt();
            int c = sc.nextInt();
            int k = sc.nextInt();
            int count = 0;
            if (a >= k) {
                System.out.println(k);
            } else {
                count += a;
                k -= a;
                if (b >= k) {
                    System.out.println(count);
                } else {
                    System.out.println(count - (k - b));
                }
            }



        }


       // public static PrintWriter out;

        public static class MyScanner {
            BufferedReader br;
            StringTokenizer st;

            public MyScanner() {
                br = new BufferedReader(new InputStreamReader(System.in));
            }

            String next() {
                while (st == null || !st.hasMoreElements()) {
                    try {
                        st = new StringTokenizer(br.readLine());
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                return st.nextToken();
            }

            int nextInt() {
                return Integer.parseInt(next());
            }

            long nextLong() {
                return Long.parseLong(next());
            }

            double nextDouble() {
                return Double.parseDouble(next());
            }

            String nextLine(){
                String str = "";
                try {
                    str = br.readLine();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                return str;
            }

        }
    } Main


import java.util.*;
import java.io.*;


public class Main {
        public static void main(String[] args) {
            MyScanner sc = new MyScanner();
            //out = new PrintWriter(new java.io.BufferedOutputStream(System.out));
            int a = sc.nextInt();
            int b = sc.nextInt();
            int c = sc.nextInt();
            int k = sc.nextInt();
            int count = 0;
            if (a >= k) {
                System.out.println(k);
            } else {
                count += a;
                k -= a;
                if (b >= k) {
                    System.out.println(count);
                } else {
                    System.out.println(count - (k - b));
                }
            }



        }


       // public static PrintWriter out;

        public static class MyScanner {
            BufferedReader br;
            StringTokenizer st;

            public MyScanner() {
                br = new BufferedReader(new InputStreamReader(System.in));
            }

            String next() {
                while (st == null || !st.hasMoreElements()) {
                    try {
                        st = new StringTokenizer(br.readLine());
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                return st.nextToken();
            }

            int nextInt() {
                return Integer.parseInt(next());
            }

            long nextLong() {
                return Long.parseLong(next());
            }

            double nextDouble() {
                return Double.parseDouble(next());
            }

            String nextLine(){
                String str = "";
                try {
                    str = br.readLine();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                return str;
            }

        }
    }