# -*- coding: utf-8 -*-

import numpy as np





if __name__ == '__main__':

    n = int(eval(input()))

    A = np.array([int(a) for a in input().split()], dtype=np.int)



    isEven = True

    count = 0

    while isEven:

        if (A%2).any() != 0 :

            isEven = False

            break

        A = A/2

        count+=1

    print(count)
import math

n = eval(input())

a = list(map(int, input().split()))

ans = float("inf")

for i in a:

    ans = min(ans, len(bin(i)) - bin(i).rfind("1") - 1)

print((round(ans)))
# -*- coding: utf-8 -*-
import numpy as np

if __name__ == "__main__":
    n = int(eval(input()))
    A = np.array([int(a) for a in input().split()], dtype=np.int)
    isEven = True
    count = 0
    while isEven:
        if (A % 2).any() != 0:
            isEven = False
            break
        A = A / 2
        count += 1
    print(count)

import math

n = eval(input())
a = list(map(int, input().split()))
ans = float("inf")
for i in a:
    ans = min(ans, len(bin(i)) - bin(i).rfind("1") - 1)
print((round(ans)))

-# -*- coding: utf-8 -*- -import numpy as np +import math -if __name__ == "__main__": -    n = int(eval(input())) -    A = np.array([int(a) for a in input().split()], dtype=np.int) -    isEven = True -    count = 0 -    while isEven: -        if (A % 2).any() != 0: -            isEven = False -            break -        A = A / 2 -        count += 1 -    print(count) +n = eval(input()) +a = list(map(int, input().split())) +ans = float("inf") +for i in a: +    ans = min(ans, len(bin(i)) - bin(i).rfind("1") - 1) +print((round(ans)))