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

// https://atcoder.jp/contests/abc081/tasks/abc081_b
public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner scanner = new Scanner(System.in);

		int length = scanner.nextInt();

		// 値の取得
		ArrayList<Integer> list = new ArrayList<Integer>();
		for(int i=0;i<length;i++) {
			list.add(scanner.nextInt());
		}

		boolean flag = true;
		int count = 0;
		do{
			// 値が全て偶数かの確認（trueの時、全て偶数）
			for(int i=0;(i<length)&&flag;i++){
				if(list.get(i)%2!=0) {
					flag = false;
				}
			}

			if(flag) {
				// 偶数の時、全ての値を割る2した値に更新する。
				for(int j=0;(j<length);j++){
					list.set(j,list.get(j)/2);
				}
				// 偶数の時、操作回数を足す。
				count++;
			}
		}while(flag);

		System.out.println(count);

		scanner.close();

	}

} import java.util.ArrayList; ArrayList java.util import java.util.Scanner; Scanner java.util public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner scanner = new Scanner(System.in);

		int length = scanner.nextInt();

		// 値の取得
		ArrayList<Integer> list = new ArrayList<Integer>();
		for(int i=0;i<length;i++) {
			list.add(scanner.nextInt());
		}

		boolean flag = true;
		int count = 0;
		do{
			// 値が全て偶数かの確認（trueの時、全て偶数）
			for(int i=0;(i<length)&&flag;i++){
				if(list.get(i)%2!=0) {
					flag = false;
				}
			}

			if(flag) {
				// 偶数の時、全ての値を割る2した値に更新する。
				for(int j=0;(j<length);j++){
					list.set(j,list.get(j)/2);
				}
				// 偶数の時、操作回数を足す。
				count++;
			}
		}while(flag);

		System.out.println(count);

		scanner.close();

	}

} Main public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner scanner = new Scanner(System.in);

		int length = scanner.nextInt();

		// 値の取得
		ArrayList<Integer> list = new ArrayList<Integer>();
		for(int i=0;i<length;i++) {
			list.add(scanner.nextInt());
		}

		boolean flag = true;
		int count = 0;
		do{
			// 値が全て偶数かの確認（trueの時、全て偶数）
			for(int i=0;(i<length)&&flag;i++){
				if(list.get(i)%2!=0) {
					flag = false;
				}
			}

			if(flag) {
				// 偶数の時、全ての値を割る2した値に更新する。
				for(int j=0;(j<length);j++){
					list.set(j,list.get(j)/2);
				}
				// 偶数の時、操作回数を足す。
				count++;
			}
		}while(flag);

		System.out.println(count);

		scanner.close();

	} main {
		// TODO 自動生成されたメソッド・スタブ
		Scanner scanner = new Scanner(System.in);

		int length = scanner.nextInt();

		// 値の取得
		ArrayList<Integer> list = new ArrayList<Integer>();
		for(int i=0;i<length;i++) {
			list.add(scanner.nextInt());
		}

		boolean flag = true;
		int count = 0;
		do{
			// 値が全て偶数かの確認（trueの時、全て偶数）
			for(int i=0;(i<length)&&flag;i++){
				if(list.get(i)%2!=0) {
					flag = false;
				}
			}

			if(flag) {
				// 偶数の時、全ての値を割る2した値に更新する。
				for(int j=0;(j<length);j++){
					list.set(j,list.get(j)/2);
				}
				// 偶数の時、操作回数を足す。
				count++;
			}
		}while(flag);

		System.out.println(count);

		scanner.close();

	} Scanner scanner = new Scanner(System.in); scanner new Scanner(System.in) int length = scanner.nextInt(); length scanner.nextInt() scanner.nextInt scanner ArrayList<Integer> list = new ArrayList<Integer>(); list new ArrayList<Integer>() for(int i=0;i<length;i++) {
			list.add(scanner.nextInt());
		} int i=0; int i=0; i 0 i<length i length i++ i++ i {
			list.add(scanner.nextInt());
		} {
			list.add(scanner.nextInt());
		} list.add(scanner.nextInt()) list.add list scanner.nextInt() scanner.nextInt scanner boolean flag = true; flag true int count = 0; count 0 do{
			// 値が全て偶数かの確認（trueの時、全て偶数）
			for(int i=0;(i<length)&&flag;i++){
				if(list.get(i)%2!=0) {
					flag = false;
				}
			}

			if(flag) {
				// 偶数の時、全ての値を割る2した値に更新する。
				for(int j=0;(j<length);j++){
					list.set(j,list.get(j)/2);
				}
				// 偶数の時、操作回数を足す。
				count++;
			}
		}while(flag); flag {
			// 値が全て偶数かの確認（trueの時、全て偶数）
			for(int i=0;(i<length)&&flag;i++){
				if(list.get(i)%2!=0) {
					flag = false;
				}
			}

			if(flag) {
				// 偶数の時、全ての値を割る2した値に更新する。
				for(int j=0;(j<length);j++){
					list.set(j,list.get(j)/2);
				}
				// 偶数の時、操作回数を足す。
				count++;
			}
		} for(int i=0;(i<length)&&flag;i++){
				if(list.get(i)%2!=0) {
					flag = false;
				}
			} int i=0; int i=0; i 0 (i<length)&&flag (i<length) i length flag i++ i++ i {
				if(list.get(i)%2!=0) {
					flag = false;
				}
			} {
				if(list.get(i)%2!=0) {
					flag = false;
				}
			} if(list.get(i)%2!=0) {
					flag = false;
				} list.get(i)%2!=0 list.get(i)%2 list.get(i) list.get list i 2 0 {
					flag = false;
				} flag = false flag false if(flag) {
				// 偶数の時、全ての値を割る2した値に更新する。
				for(int j=0;(j<length);j++){
					list.set(j,list.get(j)/2);
				}
				// 偶数の時、操作回数を足す。
				count++;
			} flag {
				// 偶数の時、全ての値を割る2した値に更新する。
				for(int j=0;(j<length);j++){
					list.set(j,list.get(j)/2);
				}
				// 偶数の時、操作回数を足す。
				count++;
			} for(int j=0;(j<length);j++){
					list.set(j,list.get(j)/2);
				} int j=0; int j=0; j 0 (j<length) j length j++ j++ j {
					list.set(j,list.get(j)/2);
				} {
					list.set(j,list.get(j)/2);
				} list.set(j,list.get(j)/2) list.set list j list.get(j)/2 list.get(j) list.get list j 2 count++ count System.out.println(count) System.out.println System.out System System.out count scanner.close() scanner.close scanner String[] args args public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner scanner = new Scanner(System.in);

		int length = scanner.nextInt();

		// 値の取得
		ArrayList<Integer> list = new ArrayList<Integer>();
		for(int i=0;i<length;i++) {
			list.add(scanner.nextInt());
		}

		boolean flag = true;
		int count = 0;
		do{
			// 値が全て偶数かの確認（trueの時、全て偶数）
			for(int i=0;(i<length)&&flag;i++){
				if(list.get(i)%2!=0) {
					flag = false;
				}
			}

			if(flag) {
				// 偶数の時、全ての値を割る2した値に更新する。
				for(int j=0;(j<length);j++){
					list.set(j,list.get(j)/2);
				}
				// 偶数の時、操作回数を足す。
				count++;
			}
		}while(flag);

		System.out.println(count);

		scanner.close();

	}

} public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner scanner = new Scanner(System.in);

		int length = scanner.nextInt();

		// 値の取得
		ArrayList<Integer> list = new ArrayList<Integer>();
		for(int i=0;i<length;i++) {
			list.add(scanner.nextInt());
		}

		boolean flag = true;
		int count = 0;
		do{
			// 値が全て偶数かの確認（trueの時、全て偶数）
			for(int i=0;(i<length)&&flag;i++){
				if(list.get(i)%2!=0) {
					flag = false;
				}
			}

			if(flag) {
				// 偶数の時、全ての値を割る2した値に更新する。
				for(int j=0;(j<length);j++){
					list.set(j,list.get(j)/2);
				}
				// 偶数の時、操作回数を足す。
				count++;
			}
		}while(flag);

		System.out.println(count);

		scanner.close();

	}

} Main
import java.util.ArrayList;
import java.util.Scanner;

// https://atcoder.jp/contests/abc081/tasks/abc081_b
public class Main {

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		Scanner scanner = new Scanner(System.in);

		int length = scanner.nextInt();

		// 値の取得
		ArrayList<Integer> list = new ArrayList<Integer>();
		for(int i=0;i<length;i++) {
			list.add(scanner.nextInt());
		}

		boolean flag = true;
		int count = 0;
		do{
			// 値が全て偶数かの確認（trueの時、全て偶数）
			for(int i=0;(i<length)&&flag;i++){
				if(list.get(i)%2!=0) {
					flag = false;
				}
			}

			if(flag) {
				// 偶数の時、全ての値を割る2した値に更新する。
				for(int j=0;(j<length);j++){
					list.set(j,list.get(j)/2);
				}
				// 偶数の時、操作回数を足す。
				count++;
			}
		}while(flag);

		System.out.println(count);

		scanner.close();

	}

}
