import java.util.*;
 
public class Main {
	public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		List<Integer> box = new ArrayList<>();
		int count = 0;
 
		// 与えられた初期値によってリストを作成
		for (int i = 1; i <= a; i++) {
			box.add(sc.nextInt());
		}
		while (check(box)) {
			box = divide(box);
			count++;
		}
		System.out.println(count);
	}
 
	/**
	 * 格納された全ての値が偶数かそうではないかをチェックするメソッド
	 * 
	 * @param box
	 * @return boolean
	 */
	private static boolean check(List<Integer> box) {
		for (int i = 0; i < box.size(); i++) {
			if (box.get(i) % 2 == 1) {
				return false;
			}
		}
		return true;
	}
 
	/**
	 * リストを受け取って、各値を2で割った値を返す
	 * 
	 * @param box
	 * @return List<Integer>
	 */
	private static List<Integer> divide(List<Integer> box) {
		List<Integer> dividedBox = new ArrayList<>();
		for (int i = 0; i < box.size(); i++) {
			dividedBox.add(box.get(i) / 2);
		}
		return dividedBox;
	}
} import java.util.*; util.* java public class Main {
	public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		List<Integer> box = new ArrayList<>();
		int count = 0;
 
		// 与えられた初期値によってリストを作成
		for (int i = 1; i <= a; i++) {
			box.add(sc.nextInt());
		}
		while (check(box)) {
			box = divide(box);
			count++;
		}
		System.out.println(count);
	}
 
	/**
	 * 格納された全ての値が偶数かそうではないかをチェックするメソッド
	 * 
	 * @param box
	 * @return boolean
	 */
	private static boolean check(List<Integer> box) {
		for (int i = 0; i < box.size(); i++) {
			if (box.get(i) % 2 == 1) {
				return false;
			}
		}
		return true;
	}
 
	/**
	 * リストを受け取って、各値を2で割った値を返す
	 * 
	 * @param box
	 * @return List<Integer>
	 */
	private static List<Integer> divide(List<Integer> box) {
		List<Integer> dividedBox = new ArrayList<>();
		for (int i = 0; i < box.size(); i++) {
			dividedBox.add(box.get(i) / 2);
		}
		return dividedBox;
	}
} Main public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		List<Integer> box = new ArrayList<>();
		int count = 0;
 
		// 与えられた初期値によってリストを作成
		for (int i = 1; i <= a; i++) {
			box.add(sc.nextInt());
		}
		while (check(box)) {
			box = divide(box);
			count++;
		}
		System.out.println(count);
	} main {
      Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		List<Integer> box = new ArrayList<>();
		int count = 0;
 
		// 与えられた初期値によってリストを作成
		for (int i = 1; i <= a; i++) {
			box.add(sc.nextInt());
		}
		while (check(box)) {
			box = divide(box);
			count++;
		}
		System.out.println(count);
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int a = sc.nextInt(); a sc.nextInt() sc.nextInt sc List<Integer> box = new ArrayList<>(); box new ArrayList<>() int count = 0; count 0 for (int i = 1; i <= a; i++) {
			box.add(sc.nextInt());
		} int i = 1; int i = 1; i 1 i <= a i a i++ i++ i {
			box.add(sc.nextInt());
		} {
			box.add(sc.nextInt());
		} box.add(sc.nextInt()) box.add box sc.nextInt() sc.nextInt sc while (check(box)) {
			box = divide(box);
			count++;
		} check(box) check box {
			box = divide(box);
			count++;
		} box = divide(box) box divide(box) divide box count++ count System.out.println(count) System.out.println System.out System System.out count String[] args args /**
	 * 格納された全ての値が偶数かそうではないかをチェックするメソッド
	 * 
	 * @param box
	 * @return boolean
	 */
	private static boolean check(List<Integer> box) {
		for (int i = 0; i < box.size(); i++) {
			if (box.get(i) % 2 == 1) {
				return false;
			}
		}
		return true;
	} check {
		for (int i = 0; i < box.size(); i++) {
			if (box.get(i) % 2 == 1) {
				return false;
			}
		}
		return true;
	} for (int i = 0; i < box.size(); i++) {
			if (box.get(i) % 2 == 1) {
				return false;
			}
		} int i = 0; int i = 0; i 0 i < box.size() i box.size() box.size box i++ i++ i {
			if (box.get(i) % 2 == 1) {
				return false;
			}
		} {
			if (box.get(i) % 2 == 1) {
				return false;
			}
		} if (box.get(i) % 2 == 1) {
				return false;
			} box.get(i) % 2 == 1 box.get(i) % 2 box.get(i) box.get box i 2 1 {
				return false;
			} return false; false return true; true List<Integer> box box /**
	 * リストを受け取って、各値を2で割った値を返す
	 * 
	 * @param box
	 * @return List<Integer>
	 */
	private static List<Integer> divide(List<Integer> box) {
		List<Integer> dividedBox = new ArrayList<>();
		for (int i = 0; i < box.size(); i++) {
			dividedBox.add(box.get(i) / 2);
		}
		return dividedBox;
	} divide {
		List<Integer> dividedBox = new ArrayList<>();
		for (int i = 0; i < box.size(); i++) {
			dividedBox.add(box.get(i) / 2);
		}
		return dividedBox;
	} List<Integer> dividedBox = new ArrayList<>(); dividedBox new ArrayList<>() for (int i = 0; i < box.size(); i++) {
			dividedBox.add(box.get(i) / 2);
		} int i = 0; int i = 0; i 0 i < box.size() i box.size() box.size box i++ i++ i {
			dividedBox.add(box.get(i) / 2);
		} {
			dividedBox.add(box.get(i) / 2);
		} dividedBox.add(box.get(i) / 2) dividedBox.add dividedBox box.get(i) / 2 box.get(i) box.get box i 2 return dividedBox; dividedBox List<Integer> box box public class Main {
	public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		List<Integer> box = new ArrayList<>();
		int count = 0;
 
		// 与えられた初期値によってリストを作成
		for (int i = 1; i <= a; i++) {
			box.add(sc.nextInt());
		}
		while (check(box)) {
			box = divide(box);
			count++;
		}
		System.out.println(count);
	}
 
	/**
	 * 格納された全ての値が偶数かそうではないかをチェックするメソッド
	 * 
	 * @param box
	 * @return boolean
	 */
	private static boolean check(List<Integer> box) {
		for (int i = 0; i < box.size(); i++) {
			if (box.get(i) % 2 == 1) {
				return false;
			}
		}
		return true;
	}
 
	/**
	 * リストを受け取って、各値を2で割った値を返す
	 * 
	 * @param box
	 * @return List<Integer>
	 */
	private static List<Integer> divide(List<Integer> box) {
		List<Integer> dividedBox = new ArrayList<>();
		for (int i = 0; i < box.size(); i++) {
			dividedBox.add(box.get(i) / 2);
		}
		return dividedBox;
	}
} public class Main {
	public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		List<Integer> box = new ArrayList<>();
		int count = 0;
 
		// 与えられた初期値によってリストを作成
		for (int i = 1; i <= a; i++) {
			box.add(sc.nextInt());
		}
		while (check(box)) {
			box = divide(box);
			count++;
		}
		System.out.println(count);
	}
 
	/**
	 * 格納された全ての値が偶数かそうではないかをチェックするメソッド
	 * 
	 * @param box
	 * @return boolean
	 */
	private static boolean check(List<Integer> box) {
		for (int i = 0; i < box.size(); i++) {
			if (box.get(i) % 2 == 1) {
				return false;
			}
		}
		return true;
	}
 
	/**
	 * リストを受け取って、各値を2で割った値を返す
	 * 
	 * @param box
	 * @return List<Integer>
	 */
	private static List<Integer> divide(List<Integer> box) {
		List<Integer> dividedBox = new ArrayList<>();
		for (int i = 0; i < box.size(); i++) {
			dividedBox.add(box.get(i) / 2);
		}
		return dividedBox;
	}
} Main
import java.util.*;
 
public class Main {
	public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		List<Integer> box = new ArrayList<>();
		int count = 0;
 
		// 与えられた初期値によってリストを作成
		for (int i = 1; i <= a; i++) {
			box.add(sc.nextInt());
		}
		while (check(box)) {
			box = divide(box);
			count++;
		}
		System.out.println(count);
	}
 
	/**
	 * 格納された全ての値が偶数かそうではないかをチェックするメソッド
	 * 
	 * @param box
	 * @return boolean
	 */
	private static boolean check(List<Integer> box) {
		for (int i = 0; i < box.size(); i++) {
			if (box.get(i) % 2 == 1) {
				return false;
			}
		}
		return true;
	}
 
	/**
	 * リストを受け取って、各値を2で割った値を返す
	 * 
	 * @param box
	 * @return List<Integer>
	 */
	private static List<Integer> divide(List<Integer> box) {
		List<Integer> dividedBox = new ArrayList<>();
		for (int i = 0; i < box.size(); i++) {
			dividedBox.add(box.get(i) / 2);
		}
		return dividedBox;
	}
}
