import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int N = scanner.nextInt();

        List<Integer> list = new ArrayList();
        for (int i = 0; i < N; i++) {
            list.add(scanner.nextInt());
        }

        int result = 0;
        while(shouldContinue(list)) {
            List<Integer> newList = new ArrayList<>(list.size());
            for (int value : list) {
                newList.add(value / 2);
            }
            list = newList;
            result++;
        }

        System.out.println(result);
    }

    private static boolean shouldContinue(List<Integer> list) {
        boolean hasPositive = false;
        for (int value : list) {
            if (value % 2 != 0) {
                return false;
            }
            if (!hasPositive && value > 0) {
                hasPositive = true;
            }
        }
        return hasPositive;
    }
} import java.util.ArrayList; ArrayList java.util import java.util.List; List java.util import java.util.Scanner; Scanner java.util public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int N = scanner.nextInt();

        List<Integer> list = new ArrayList();
        for (int i = 0; i < N; i++) {
            list.add(scanner.nextInt());
        }

        int result = 0;
        while(shouldContinue(list)) {
            List<Integer> newList = new ArrayList<>(list.size());
            for (int value : list) {
                newList.add(value / 2);
            }
            list = newList;
            result++;
        }

        System.out.println(result);
    }

    private static boolean shouldContinue(List<Integer> list) {
        boolean hasPositive = false;
        for (int value : list) {
            if (value % 2 != 0) {
                return false;
            }
            if (!hasPositive && value > 0) {
                hasPositive = true;
            }
        }
        return hasPositive;
    }
} Main public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int N = scanner.nextInt();

        List<Integer> list = new ArrayList();
        for (int i = 0; i < N; i++) {
            list.add(scanner.nextInt());
        }

        int result = 0;
        while(shouldContinue(list)) {
            List<Integer> newList = new ArrayList<>(list.size());
            for (int value : list) {
                newList.add(value / 2);
            }
            list = newList;
            result++;
        }

        System.out.println(result);
    } main {
        Scanner scanner = new Scanner(System.in);

        int N = scanner.nextInt();

        List<Integer> list = new ArrayList();
        for (int i = 0; i < N; i++) {
            list.add(scanner.nextInt());
        }

        int result = 0;
        while(shouldContinue(list)) {
            List<Integer> newList = new ArrayList<>(list.size());
            for (int value : list) {
                newList.add(value / 2);
            }
            list = newList;
            result++;
        }

        System.out.println(result);
    } Scanner scanner = new Scanner(System.in); scanner new Scanner(System.in) int N = scanner.nextInt(); N scanner.nextInt() scanner.nextInt scanner List<Integer> list = new ArrayList(); list new ArrayList() for (int i = 0; i < N; i++) {
            list.add(scanner.nextInt());
        } int i = 0; int i = 0; i 0 i < N i N i++ i++ i {
            list.add(scanner.nextInt());
        } {
            list.add(scanner.nextInt());
        } list.add(scanner.nextInt()) list.add list scanner.nextInt() scanner.nextInt scanner int result = 0; result 0 while(shouldContinue(list)) {
            List<Integer> newList = new ArrayList<>(list.size());
            for (int value : list) {
                newList.add(value / 2);
            }
            list = newList;
            result++;
        } shouldContinue(list) shouldContinue list {
            List<Integer> newList = new ArrayList<>(list.size());
            for (int value : list) {
                newList.add(value / 2);
            }
            list = newList;
            result++;
        } List<Integer> newList = new ArrayList<>(list.size()); newList new ArrayList<>(list.size()) for (int value : list) {
                newList.add(value / 2);
            } int value list {
                newList.add(value / 2);
            } {
                newList.add(value / 2);
            } newList.add(value / 2) newList.add newList value / 2 value 2 list = newList list newList result++ result System.out.println(result) System.out.println System.out System System.out result String[] args args private static boolean shouldContinue(List<Integer> list) {
        boolean hasPositive = false;
        for (int value : list) {
            if (value % 2 != 0) {
                return false;
            }
            if (!hasPositive && value > 0) {
                hasPositive = true;
            }
        }
        return hasPositive;
    } shouldContinue {
        boolean hasPositive = false;
        for (int value : list) {
            if (value % 2 != 0) {
                return false;
            }
            if (!hasPositive && value > 0) {
                hasPositive = true;
            }
        }
        return hasPositive;
    } boolean hasPositive = false; hasPositive false for (int value : list) {
            if (value % 2 != 0) {
                return false;
            }
            if (!hasPositive && value > 0) {
                hasPositive = true;
            }
        } int value list {
            if (value % 2 != 0) {
                return false;
            }
            if (!hasPositive && value > 0) {
                hasPositive = true;
            }
        } {
            if (value % 2 != 0) {
                return false;
            }
            if (!hasPositive && value > 0) {
                hasPositive = true;
            }
        } if (value % 2 != 0) {
                return false;
            } value % 2 != 0 value % 2 value 2 0 {
                return false;
            } return false; false if (!hasPositive && value > 0) {
                hasPositive = true;
            } !hasPositive && value > 0 !hasPositive hasPositive value > 0 value 0 {
                hasPositive = true;
            } hasPositive = true hasPositive true return hasPositive; hasPositive List<Integer> list list public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int N = scanner.nextInt();

        List<Integer> list = new ArrayList();
        for (int i = 0; i < N; i++) {
            list.add(scanner.nextInt());
        }

        int result = 0;
        while(shouldContinue(list)) {
            List<Integer> newList = new ArrayList<>(list.size());
            for (int value : list) {
                newList.add(value / 2);
            }
            list = newList;
            result++;
        }

        System.out.println(result);
    }

    private static boolean shouldContinue(List<Integer> list) {
        boolean hasPositive = false;
        for (int value : list) {
            if (value % 2 != 0) {
                return false;
            }
            if (!hasPositive && value > 0) {
                hasPositive = true;
            }
        }
        return hasPositive;
    }
} public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int N = scanner.nextInt();

        List<Integer> list = new ArrayList();
        for (int i = 0; i < N; i++) {
            list.add(scanner.nextInt());
        }

        int result = 0;
        while(shouldContinue(list)) {
            List<Integer> newList = new ArrayList<>(list.size());
            for (int value : list) {
                newList.add(value / 2);
            }
            list = newList;
            result++;
        }

        System.out.println(result);
    }

    private static boolean shouldContinue(List<Integer> list) {
        boolean hasPositive = false;
        for (int value : list) {
            if (value % 2 != 0) {
                return false;
            }
            if (!hasPositive && value > 0) {
                hasPositive = true;
            }
        }
        return hasPositive;
    }
} Main
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int N = scanner.nextInt();

        List<Integer> list = new ArrayList();
        for (int i = 0; i < N; i++) {
            list.add(scanner.nextInt());
        }

        int result = 0;
        while(shouldContinue(list)) {
            List<Integer> newList = new ArrayList<>(list.size());
            for (int value : list) {
                newList.add(value / 2);
            }
            list = newList;
            result++;
        }

        System.out.println(result);
    }

    private static boolean shouldContinue(List<Integer> list) {
        boolean hasPositive = false;
        for (int value : list) {
            if (value % 2 != 0) {
                return false;
            }
            if (!hasPositive && value > 0) {
                hasPositive = true;
            }
        }
        return hasPositive;
    }
}