import java.util.*;
import static java.lang.Math.*;

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

		// 入力
		int n = sc.nextInt();

		// 各入力値を取得して2で割れる回数を取得。最小回数を算出する。
		int minNum = -1;
		for(int i = 0; i < n; i++){
			int a = sc.nextInt(); // 入力値取得
			if(minNum == -1){
				minNum = NumberOfDevision(a);
			}else{
				minNum = min(minNum, NumberOfDevision(a));
			}
		}

		// 出力
		System.out.println(minNum);
	}

	// 偶数かどうかを判定
	static boolean isEven(int n){
		if(n%2 == 0){
			return true;
		}else{
			return false;
		}
	}

	// 2で割り切れる回数を取得
	static int NumberOfDevision(int n){
		if(isEven(n)){
			return 1 + NumberOfDevision(n/2);
		}else{
			return 0;
		}
	}

}

 import java.util.*; util.* java import static java.lang.Math.*; import static java.lang.Math.*; import static java.lang.Math.*; public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);

		// 入力
		int n = sc.nextInt();

		// 各入力値を取得して2で割れる回数を取得。最小回数を算出する。
		int minNum = -1;
		for(int i = 0; i < n; i++){
			int a = sc.nextInt(); // 入力値取得
			if(minNum == -1){
				minNum = NumberOfDevision(a);
			}else{
				minNum = min(minNum, NumberOfDevision(a));
			}
		}

		// 出力
		System.out.println(minNum);
	}

	// 偶数かどうかを判定
	static boolean isEven(int n){
		if(n%2 == 0){
			return true;
		}else{
			return false;
		}
	}

	// 2で割り切れる回数を取得
	static int NumberOfDevision(int n){
		if(isEven(n)){
			return 1 + NumberOfDevision(n/2);
		}else{
			return 0;
		}
	}

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

		// 入力
		int n = sc.nextInt();

		// 各入力値を取得して2で割れる回数を取得。最小回数を算出する。
		int minNum = -1;
		for(int i = 0; i < n; i++){
			int a = sc.nextInt(); // 入力値取得
			if(minNum == -1){
				minNum = NumberOfDevision(a);
			}else{
				minNum = min(minNum, NumberOfDevision(a));
			}
		}

		// 出力
		System.out.println(minNum);
	} main {
		Scanner sc = new Scanner(System.in);

		// 入力
		int n = sc.nextInt();

		// 各入力値を取得して2で割れる回数を取得。最小回数を算出する。
		int minNum = -1;
		for(int i = 0; i < n; i++){
			int a = sc.nextInt(); // 入力値取得
			if(minNum == -1){
				minNum = NumberOfDevision(a);
			}else{
				minNum = min(minNum, NumberOfDevision(a));
			}
		}

		// 出力
		System.out.println(minNum);
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int n = sc.nextInt(); n sc.nextInt() sc.nextInt sc int minNum = -1; minNum -1 1 for(int i = 0; i < n; i++){
			int a = sc.nextInt(); // 入力値取得
			if(minNum == -1){
				minNum = NumberOfDevision(a);
			}else{
				minNum = min(minNum, NumberOfDevision(a));
			}
		} int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
			int a = sc.nextInt(); // 入力値取得
			if(minNum == -1){
				minNum = NumberOfDevision(a);
			}else{
				minNum = min(minNum, NumberOfDevision(a));
			}
		} {
			int a = sc.nextInt(); // 入力値取得
			if(minNum == -1){
				minNum = NumberOfDevision(a);
			}else{
				minNum = min(minNum, NumberOfDevision(a));
			}
		} int a = sc.nextInt(); a sc.nextInt() sc.nextInt sc if(minNum == -1){
				minNum = NumberOfDevision(a);
			}else{
				minNum = min(minNum, NumberOfDevision(a));
			} minNum == -1 minNum -1 1 {
				minNum = NumberOfDevision(a);
			} minNum = NumberOfDevision(a) minNum NumberOfDevision(a) NumberOfDevision a {
				minNum = min(minNum, NumberOfDevision(a));
			} minNum = min(minNum, NumberOfDevision(a)) minNum min(minNum, NumberOfDevision(a)) min minNum NumberOfDevision(a) NumberOfDevision a System.out.println(minNum) System.out.println System.out System System.out minNum String[] args args // 偶数かどうかを判定
	static boolean isEven(int n){
		if(n%2 == 0){
			return true;
		}else{
			return false;
		}
	} isEven {
		if(n%2 == 0){
			return true;
		}else{
			return false;
		}
	} if(n%2 == 0){
			return true;
		}else{
			return false;
		} n%2 == 0 n%2 n 2 0 {
			return true;
		} return true; true {
			return false;
		} return false; false int n n // 2で割り切れる回数を取得
	static int NumberOfDevision(int n){
		if(isEven(n)){
			return 1 + NumberOfDevision(n/2);
		}else{
			return 0;
		}
	} NumberOfDevision {
		if(isEven(n)){
			return 1 + NumberOfDevision(n/2);
		}else{
			return 0;
		}
	} if(isEven(n)){
			return 1 + NumberOfDevision(n/2);
		}else{
			return 0;
		} isEven(n) isEven n {
			return 1 + NumberOfDevision(n/2);
		} return 1 + NumberOfDevision(n/2); 1 + NumberOfDevision(n/2) 1 NumberOfDevision(n/2) NumberOfDevision n/2 n 2 {
			return 0;
		} return 0; 0 int n n public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);

		// 入力
		int n = sc.nextInt();

		// 各入力値を取得して2で割れる回数を取得。最小回数を算出する。
		int minNum = -1;
		for(int i = 0; i < n; i++){
			int a = sc.nextInt(); // 入力値取得
			if(minNum == -1){
				minNum = NumberOfDevision(a);
			}else{
				minNum = min(minNum, NumberOfDevision(a));
			}
		}

		// 出力
		System.out.println(minNum);
	}

	// 偶数かどうかを判定
	static boolean isEven(int n){
		if(n%2 == 0){
			return true;
		}else{
			return false;
		}
	}

	// 2で割り切れる回数を取得
	static int NumberOfDevision(int n){
		if(isEven(n)){
			return 1 + NumberOfDevision(n/2);
		}else{
			return 0;
		}
	}

} public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);

		// 入力
		int n = sc.nextInt();

		// 各入力値を取得して2で割れる回数を取得。最小回数を算出する。
		int minNum = -1;
		for(int i = 0; i < n; i++){
			int a = sc.nextInt(); // 入力値取得
			if(minNum == -1){
				minNum = NumberOfDevision(a);
			}else{
				minNum = min(minNum, NumberOfDevision(a));
			}
		}

		// 出力
		System.out.println(minNum);
	}

	// 偶数かどうかを判定
	static boolean isEven(int n){
		if(n%2 == 0){
			return true;
		}else{
			return false;
		}
	}

	// 2で割り切れる回数を取得
	static int NumberOfDevision(int n){
		if(isEven(n)){
			return 1 + NumberOfDevision(n/2);
		}else{
			return 0;
		}
	}

} Main
import java.util.*;
import static java.lang.Math.*;

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

		// 入力
		int n = sc.nextInt();

		// 各入力値を取得して2で割れる回数を取得。最小回数を算出する。
		int minNum = -1;
		for(int i = 0; i < n; i++){
			int a = sc.nextInt(); // 入力値取得
			if(minNum == -1){
				minNum = NumberOfDevision(a);
			}else{
				minNum = min(minNum, NumberOfDevision(a));
			}
		}

		// 出力
		System.out.println(minNum);
	}

	// 偶数かどうかを判定
	static boolean isEven(int n){
		if(n%2 == 0){
			return true;
		}else{
			return false;
		}
	}

	// 2で割り切れる回数を取得
	static int NumberOfDevision(int n){
		if(isEven(n)){
			return 1 + NumberOfDevision(n/2);
		}else{
			return 0;
		}
	}

}


