Problem:
 Score : 200 points    Problem Statement There are N positive integers written on a blackboard: A_1, ..., A_N .  Snuke can perform the following operation when all integers on the blackboard are even:   Replace each integer X on the blackboard by X divided by 2 .   Find the maximum possible number of operations that Snuke can perform.      Constraints  1 \leq N \leq 200  1 \leq A_i \leq 10^9         Input Input is given from Standard Input in the following format:  N  A_1  A_2 ... A_N       Output Print the maximum possible number of operations that Snuke can perform.        Sample Input 1 3
8 12 40      Sample Output 1 2  Initially, [8, 12, 40] are written on the blackboard.
Since all those integers are even, Snuke can perform the operation.  After the operation is performed once, [4, 6, 20] are written on the blackboard.
Since all those integers are again even, he can perform the operation.  After the operation is performed twice, [2, 3, 10] are written on the blackboard.
Now, there is an odd number 3 on the blackboard, so he cannot perform the operation any more.  Thus, Snuke can perform the operation at most twice.       Sample Input 2 4
5 6 8 10      Sample Output 2 0  Since there is an odd number 5 on the blackboard already in the beginning, Snuke cannot perform the operation at all.       Sample Input 3 6
382253568 723152896 37802240 379425024 404894720 471526144      Sample Output 3 8

Solution (Python):
N=int(input())
A=list(map(int,input().split()))
ans_list = []

for n in A:
    temp = n
    count = 0
    while temp % 2 == 0:
        temp /= 2
        count = count + 1
    ans_list.append(count)
    
print(min(ans_list))

Solution (Python):

N = int(input())
A_list = list(map(int,input().split()))

ans_list = []
temp_ans = 0

for value in A_list:
    temp_value = value
    temp_ans = 0
    while temp_value%2 == 0:
        temp_value /= 2
        temp_ans += 1

    ans_list.append(temp_ans)

print(min(ans_list))

Solution (Python):
N = int(input())
nums = [int(s) for s in input().split()]
i = 0
cnt = 0
while True:
    if i == N:
        i = 0
        cnt += 1
    if nums[i % N] % 2 == 1:
        break
    nums[i % N] //= 2
    i += 1
print(cnt)

Solution (Python):
n = int(input())
a = list(map(int, input().split()))
cnt = 0

while all(i%2==0 for i in a):
  a = [i//2 for i in a]
  cnt+=1

print(cnt)

Solution (Python):
N=int(input())
A=list(map(int,input().split()))
count=0
 
while all(a%2==0 for a in A):
  A=[a//2 for a in A]
  count+=1
 
print(count)

Solution (Python):
n = int(input())
l = list(map(int, input().split()))
result = 0
loop = 0
while True:
    if all(x % 2 == 0 for x in l):
        result += 1
        for data in range(len(l)):
            l[data] = l[data]//2
    else:
        print(result)
        exit()

Solution (Python):
n = int(input())
a = list(map(int, input().split()))
l = []
for i in a:
    cnt = 0
    while i%2 == 0:
        cnt +=1
        i //=2
    l.append(cnt)
print(min(l))

Solution (Python):
n=int(input())
a=list(map(int,input().split()))
count=-1
for j in range(10**5):
  count+=1
  for i in range(n):
    if a[i]%2!=0:
      print(count)
      exit()
    a[i]//=2
  
print(count)

Solution (Python):
N = int(input())
a = list(map(int,input().split()))
dev = lambda x : x/2
amari = lambda x : x % 2
for i in range(1000):
    amari_a = list(map(amari, a))
    if amari_a.count(1) > 0: break
    a = list(map(dev,a))
print(i)

Solution (Python):
N = int(input())
A = list([0]*N)
A = list(map(int, input().split()))

cnt = 0
flag = False
while 1:
    for i in range(N):
        if A[i] % 2 != 0:
            flag = True
            break
        A[i] = A[i] /2
    if flag:
        break
    cnt += 1
print(cnt)

Solution (Python):




import sys



iimr = lambda: map(int, sys.stdin.readline().rstrip().split())
readline = sys.stdin.readline





def debug(*x):
    print(*x, file=sys.stderr)



class atcoder():
    def __init__(s):
        f = open(0)
        s.N = int(f.readline())
        s.A = list(map(int, f.readline().split()))

    def çözmek(s):
        res = []
        res.append(s.関数(s.N, s.A))
        print(*res)	
    
    def 関数(self, n, a):
        guusuu = True
        cnt = 0
        while(guusuu):
            for i in range(n):
                if(a[i] % 2 != 0):
                    guusuu = False
                    break;
                else:
                    a[i] /= 2
            if(guusuu): cnt += 1
        return cnt 

if __name__ == "__main__":
    ima = atcoder()
    ima.çözmek()

Solution (Python):
import numpy as np

N = int(input())
A = list(map(int,input().split()))

ans = 0

def func1(n):
  return n/2

def func2(n):
  return n%2

i = 0
while i == 0:
  
  x = list(map(func2,A))
  
  if sum(x) == 0:
    ans += 1
    A = list(map(func1,A))
  else:
    break

print(ans)

Solution (Python):
n=int(input())
n_list=list(map(int,input().split()))
count=0

def check(list):
    for i in range(n):
        if(n_list[i]%2!=0):
            return False
    return True

    

while(check(n_list)):
    n_list=[k/2 for k in n_list]
    count+=1
print(count)

Solution (Python):
from typing import List


def answer(n: int, a: List[int]) -> int:
    count = 1
    while all(i % 2 ** count == 0 for i in a):
        count += 1
    return count - 1


def main():
    n = int(input())
    a = list(map(int, input().split()))
    print(answer(n, a))


if __name__ == '__main__':
    main()

Solution (Python):
def main():

    n = int(input())
    nums = list(map(int, input().split()))
    ans = 0
    flg = True
    while flg:
        for i in range(len(nums)):
            if nums[i] % 2 == 0:
                num = nums[i] / 2
                nums[i] = num
            else:
                flg = False
                break
        if flg:
            ans += 1

    print(ans)

if __name__ == '__main__':
    main()

Solution (Python):
n = int(input())
a = list(map(int,input().split()))
x = 0
t = True
while t:
    for i in range(n):
        if a[i] % 2 == 1:
            t = False
        else:
            a[i] /= 2
    if t == True:
        x += 1
print(x)

Solution (Python):
n = int(input())
a = list(map(int,input().split()))
x = 0
t = True
while t:
    for i in range(n):
        if a[i] % 2 == 1:
            t = False
        else:
            a[i] /= 2
    x += 1
print(x-1)

Solution (Python):
n = int(input())
a = list(map(int,input().split()))
x = 0
t = True
while t:
    for i in range(n):
        if a[i] % 2 == 1:
            t = False
        a[i] /= 2
    x += 1
print(x-1)

Solution (Python):
N = int(input())
A = list(map(int,input().split()))
count = 0
roop = True

while roop == True:
    for i in range(N):
        if A[i] % 2 == 0:
            A[i] /= 2
        else:
            roop = False
            break
    if roop == True:
        count += 1
print(count)

Solution (Python):
N = int(input())
A = list(map(int, input().split()))
count = 0
roop = True

while roop == True:
    for i in range(N):
        if A[i] % 2 == 0:
            A[i] /= 2
        else:
            roop = False
            break
            
    if roop == True:
        count += 1
print(count)

Solution (Python):
n = int(input())
a = list(map(int,input().split()))
y = list()
for i in range(n):
    x = 0
    while a[i] % 2 == 0:
        a[i] /= 2
        x += 1
    y.append(x)
print(min(y))

Solution (Python):
n = int(input())
a = list(map(int, input().split()))
ans = 0
for ans in range(31):
    for i,A in enumerate(a):
        if A%2:
            print(ans)
            exit()
        a[i] //= 2

Solution (Python):
n = int(input())
a = list(map(int, input().split()))
t = True
ans = 0
while t:
    for i in range(n):
        if a[i] % 2 == 1:
            t = False
            break
        else:
            a[i] /= 2
    if t:
        ans += 1
print(ans)

Solution (Python):
N=int(input())
li = list(map(int,input().split()))

flag=True
ans=-1

while(flag):
    ans+=1
    newlist=[]
    for i in li:
        newlist.append(i//2)
        if i%2!=0:
            flag=False
    li=newlist
print(ans)

Solution (Python):

import math
import sys
sys.setrecursionlimit(10**6)


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

ans = 10**10

for i in a:
    tmp = 0
    while(i % 2 != 1):
        tmp += 1
        i = i//2
    
    ans = min(ans, tmp)

print(ans)

Solution (Python):
N = int(input())
A = list(map(int, input().split()))

count = 0
exist_odd = False

while True:
  for i in range(N):
    if A[i] % 2 != 0:
      exist_odd = True

  if exist_odd:
    break

  for i in range(N):
    A[i] /=2

  count +=1

print(count)

Solution (Python):
n = int(input())
a_list = list(map(int, input().split()))
new_list = []
ans = 0
while True:
    for i in a_list:
        if i % 2 == 1:
            break
        else:
            a = i // 2
            new_list.append(a)
    if len(new_list) < n:
        break
    ans += 1
    a_list = new_list
    new_list = []

print(ans)

Solution (Python):
n = int(input())
a = list(map(int, input().split()))

cnt = 0

while True:
  exist_odd = False
  for index in range(len(a)):
    if a[index] % 2 != 0:
      exist_odd = True
    a[index] /= 2
    
  if exist_odd: break
    
  cnt = cnt + 1

print(cnt)

Solution (Python):
n = int(input())
arr = list(map(int, input().split()))

cnt_arr = []

for ele in arr:
    cnt = 0
    while ele % 2 == 0:
        ele /= 2
        cnt += 1
    cnt_arr.append(cnt)
print(min(cnt_arr))

Solution (Python):
n=int(input())
a=list(map(int,input().split()))

cnt=0
while 1:
    for i in range(n):
        if a[i]%2:
            print(cnt)
            exit()
    else:
        cnt+=1
        for i in range(n):
            a[i]//=2

Solution (Python):
N = int(input())

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

counter = 0
flag = 1

while flag == 1:
	for i in range(len(l)):
		if l[i] % 2 != 0:
			flag = 0
			break
		else:
			l[i] = int(l[i] / 2)
	if flag == 1:
		counter += 1

print(counter)

Solution (Python):
n = int(input())
a = list(map(int,input().split()))

def devide(a,c,n):
    even = True
    for i in range(n):
        if a[i] % 2 != 0:
           even = False
        else:
            a[i] = int(a[i] / 2)
    return devide(a,c+1,n) if even else c
print(devide(a,0,n))

Solution (Python):
num = int(input())
 
vals = list(map(int,input().split()))
 
cnt = 0
flag = True
while(flag):
	for i in range(num):
		if vals[i] % 2 == 1:
			print(cnt)
			flag = False
			break
		else:
			vals[i] = vals[i] / 2
	cnt += 1

Solution (Python):
import sys

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

cnt = [0] * n

while 1:
    for i in range(n):
        if a[i] % 2 == 0:
            a[i] /= 2
            cnt[i] += 1
        else:
            print(min(cnt))
            sys.exit()

Solution (Python):
n = int(input())
a = list(map(int, input().split()))

cnt = 0
for i in range(n):
    cnt = cnt | a[i]

j = 0
ans = 0
while 1:
    if (cnt >> j & 1 == 0):
        ans += 1
        j += 1
    else:
        break
print(ans)

Solution (Python):
n = int(input())
data = list(map(int,input().split()))
bool = True
count = 0
while bool:
    for i in range (n):
        if data[i] % 2 != 0:
            bool = False
        data[i] = data[i] // 2
    if bool == False:
        print(count)
    count += 1

Solution (Python):
def divide(l):
	for i in range(len(l)):
		if l[i] % 2 == 0:
			l[i] = int(l[i] / 2)
		else:
			return False
			
	return True


n = int(input())
l = list(map(int, input().split()))

count = 0
while divide(l):
	count += 1
		
print(count)

Solution (Python):
n = int(input())
a = [int(i) for i in input().split()]
ans = -1
true = 1

while true == 1:
    for i in range(n):
        if a[i]%2 != 0:
            true = 0
            break
        else:
            a[i] /= 2
    ans += 1

print(ans)

Solution (Python):
n=int(input())
a=list(map(int,input().split()))
b=[]
cnt=0
for i in range(n):
    if a[i]%2==1:
        print('0')
        exit()
    else:
        while a[i]%2==0:
            cnt += 1
            a[i] /=  2
        b.append(cnt)
        cnt = 0
print(min(b))

Solution (Python):
N = int(input())
A = list(map(int, input().split()))

def cnt(x):
  ret = 0
  while x%2 == 0:
    ret += 1
    x //= 2
  return ret

ans = 30
for a in A:
  ans = min(ans, cnt(a))

print(ans)

Solution (Python):
n = int(input())
line = list(map(int, input().split()))
ans = 30
for i in range(n):
  count = 0
  x = line[i]
  while True:
    if x % 2 == 0:
      x = x//2
      count += 1
    else:
      break
  if count < ans:
    ans = count
print(ans)

Solution (Python):
num = int(input())
nu_list = [int(v) for v in input().split()]
count = 0

bool = True
while bool == True:
  for i in range(len(nu_list)):
    if nu_list[i] % 2 != 0:
      bool = False
      break
    else:
      nu_list[i] = nu_list[i] // 2
  if bool == True:
    count += 1 
print(count)

Solution (Python):
n=int(input())
A=list(map(int,input().split()))
ans=0
while True:
  for i in range(n):
    if A[i] %2 == 0:
      A[i] //= 2
    else:
      print(ans)
      quit()
  ans += 1

Solution (Python):
N = int(input())
A = list(map(int,input().split()))
ans = 10**9
for x in A:
    if x % 2 == 1:
        print(0)
        exit()
    c = 0
    while x % 2 == 0:
        x //= 2
        c += 1
    ans = min(ans, c)
print(ans)

Solution (Python):
def resolve():
    _ = int(input())
    a = list(map(int, input().split()))
    res = 0
    while all(i % 2 == 0 for i in a):
        res += 1
        a = list(map(lambda x: x / 2, a))
    print(res)

resolve()

Solution (Python):
n = int(input())
a = list(map(int,input().split()))
ans = 0
flag = False

while flag == False:
    for i in range(n):
        if a[i]%2 == 0:
            a[i] /= 2
        else:
            flag = True
            break
    else:
        ans += 1

print(ans)

Solution (Python):
n = int(input())
a = list(map(int, input().split()))
count = 0


exist_odd = False
while exist_odd == False:
    for i in range(n):
        if a[i] % 2 != 0:
            exist_odd = True
            if n != i:
                count -= 1
            break
        else:
            a[i] = a[i] / 2
    count += 1
    
print(count)

Solution (Python):
n = int(input())
a = list(map(int, input().split()))



exist_odd = False

in_for = 0

while exist_odd == False:
    for i in range(n):
        if a[i] % 2 != 0:
            exist_odd = True
            if n != i:
                in_for -= 1
            break
        else:
            a[i] = a[i] / 2
        
        
    in_for += 1
print(in_for)

Solution (Python):
N = int(input())
A = [int(i) for i in input().split()]
B = A.copy()
OK = True
count = 0
while OK:
    for c in range(N):
        if A[c] % 2 == 0:
            A[c] = A[c] // 2
            if A[-1] == (B[-1] / (2 ** (count+1))):
                count += 1
        else:
            OK = False
            break
print(count)

Solution (Python):

def div_by_2(n):
    res = 0
    while n % 2 == 0:
        n //= 2
        res += 1
    return res

N = int(input())
A = list(map(int, input().split()))
print(min(map(div_by_2, A)))

Solution (Python):
import re
input()
An=input().split()
print(min(len((re.findall("0+$",bin(int(a)))+[""])[0]) for a in An))

Solution (Python):
N = int(input())
A = input().split()
l=list()
for i in range(N):
    A[i] = int(A[i])
    if A[i] % 2 == 1:
        l.append(0)
        break
    else:
        for j in range(30):
            A[i] = A[i] / 2
            if A[i] % 2 == 1:
                l.append(j+1)
                break
print(min(l))

Solution (Python):
n = int(input())
a = list(map(int, input().split()))
res = 0
while all(i % 2 == 0 for i in a):
    a = [i/2 for i in a]
    res += 1
print(res)

Solution (Python):
hoge = input()
int_line = [int(i) for i in input().split()]

cnt = 0
flag = False

while True:
    for m, i in enumerate(int_line):
        if i % 2 == 0:
            int_line[m] = i/2
        else:
            flag = True
    if flag == True:
        print(cnt)
        break
    else:
        cnt += 1

Solution (Python):
n = int(input())
a = [int(s) for s in input().split()]

ans = 0
parity = True
while parity:
    for i in range(n):
        if a[i] % 2 == 0:
            a[i] = a[i] / 2
        else:
            parity = False
    if parity:
        ans += 1 
print(ans)

Solution (Python):
N = int(input())
A = list(map(int, input().split()))
count = 0
while all(a % 2 == 0 for a in A):
  A = [a /2 for a in A]
  count += 1
print(count)

Solution (Python):
n = int(input())
A = [0]*n
L = list(map(int,input().split()))
for i in range(n):
  cnt = 0
  while L[i] % 2 == 0:
    L[i] = L[i]/2
    cnt += 1
  A[i] = cnt
print(min(A))

Solution (Python):
n = 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(ans)

Solution (Python):
n = int(input())
a = list(map(int, input().split()))

for i in range(100):
    for j in range(len(a)):
        if a[j]%2 == 0:
            a[j] //= 2
        else:
            print(i)
            exit()

Solution (Python):
n = int(input())
A = list(map(int, input().split()))

K = 0
while all(a%2 == 0 for a in A):
  A = [a/2 for a in A]
  K += 1
  
print(K)

Solution (Python):

N=int(input())
data=map(int,input().split())
def wareru(n):
    p=0
    while n%2==0:
        n=n//2
        p=p+1
    return p
print(min(map(wareru,data)))

Solution (Python):
n = int(input())
li = list(map(int, input().split()))
b = float('inf')
for a in li:
    c = 0
    while a%2 == 0:
      a = a/2
      c += 1
    b = min(b,c)
print(b)

Solution (Python):
n=int(input())
a=list(map(int,input().split()))
ans,cnt=36,0
for i in range(n):
  while a[i]%2==0:
    a[i]//=2
    cnt+=1
  ans=min(ans,cnt)
  cnt=0
print(ans)

Solution (Python):

import sys
input=sys.stdin.readline
import numpy as np

def main():
    n = input()
    A = np.array(input().split(),dtype=np.int32)
    answer=0

    while np.all(A%2==0):
        A//=2
        answer+=1
    print(answer)

if __name__=="__main__":
    main()

Solution (Python):

N = int(input())
An = list(map(int, input().split(' ')))

ans = -1
flag = 0
while True:
    ans += 1
    for i in An:
        if i % 2 != 0: 
            flag = 1
            break
        An[An.index(i)] /= 2
    if flag != 0: break

print(ans)

Solution (Python):
N=int(input())
A=list(map(int,input().split()))
for i in range(N):
    x=A[i]
    y=0
    while x%2==0:
        x//=2
        y+=1
    A[i]=y
print(min(A))

Solution (Python):
import math
n = 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))

Solution (Python):
n = int(input())
a = [int(i) for i in input().split()]

cnt = 0
while True:
  flag = True
  for i in range(n):
    if a[i] % 2 == 0:
      a[i] //= 2
    else:
      flag = False
  if flag:
    cnt += 1
  else:
    break
      
print(cnt)

Solution (Python):
import numpy as np
N = int(input())
A = [int(x) for x in input().split()]
A = np.array(A)
ans = list()
for i in range(N):
  a = A[i]
  num = 0
  while a%2==0:
    a /= 2.0
    num += 1
  ans.append(num)
print(min(ans))

Solution (Python):
mycode = r'''









from libcpp.vector cimport vector as Vec


ctypedef long long LL
ctypedef Vec[LL] VLL 
ctypedef LL[::1] Arr

import numpy as np



import sys
readline = sys.stdin.buffer.readline
read = sys.stdin.readline 

cdef LL a_int(): return int(readline())

def ints(): return np.fromstring(readline(), sep=' ', dtype=np.int64)

cdef LL N=a_int()





cdef Arr A = ints() 

cdef VLL candi =VLL()
cdef LL cnt, a, i

for i in range(len(A)):
    a=A[i]
    cnt=0
    while a%2==0: 
        a//=2
        cnt+=1
    candi.push_back(cnt)

print(min(candi))

'''

import sys
if sys.argv[-1] == 'ONLINE_JUDGE':  
    import os
    with open('mycode.pyx', 'w') as f:
        f.write(mycode)
    os.system('cythonize -i -3 -b mycode.pyx')

import mycode

Solution (Python):
import sys
import copy
import math
import itertools
N = int(input())
A = [int(c) for c in input().split()]
cnt = 0

while sum(list(map(lambda x:x%2,A)))==0:
    A=list(map(lambda x:int(x/2),A))
    cnt+=1

print(cnt)

Solution (Python):
N = int(input())
A = list(map(int, input().split()))
ans = 0
flag = True
while flag:
    for i in range(N):
        if A[i] % 2 == 0:
            A[i] /= 2
        else:
            flag = False
            break
    if flag: ans += 1
print(ans)

Solution (Python):
from math import gcd
N = int(input())
A = list(map(int, input().split()))
g = A[0]
for i in range(1, N):
  g = gcd(g, A[i])
ans = 0
while g % 2 == 0:
  g //= 2
  ans += 1
print(ans)

Solution (Python):
n = int(input())
a_l = list(map(int, input().split()))
ans = float('inf')
for a in a_l:
    c = 0
    while a%2 == 0:
        a = a/2
        c += 1
    ans = min(ans,c)
print(ans)

Solution (Python):
n = int(input())
a = list(map(int, input().split()))
b = [bin(i)[2:] for i in a]
c = [0] * n
for i,v in enumerate(b):
  for j in v[::-1]:
    if j == '0':
      c[i] += 1
    else:
      break
print(min(c))

Solution (Python):
N = int(input())
A = list(map(int, input().split()))
for i in range(1 , 10 ** 20):
  for j in range(N):
    a = A[j] % (2 ** i)
    if a != 0:
      break
  if a != 0:
    break
print(i - 1)

Solution (Python):
N = int(input())
A = list(map(int,input().split()))
 
cnt = 0
while True:
  check = sum([n % 2 for n in A])
  if check == 0:
    A = [n/2 for n in A]
    cnt += 1
  else:
    break
    
print(cnt)

Solution (Python):
n = int(input())
a = list(map(int, input().split()))
def f():
    for i in range(100):
        for j in range(n):
            if a[j]%2 == 0:
                a[j] = a[j]//2
            else:
                return i
print(f())

Solution (Python):



if __name__ == '__main__':
    s = int(input())
    x = [list(map(int, input().split())) for i in range(1)]

    count = 0
    while True:
        flg = False
        for n in range(len(x[0])):
            if x[0][n] % 2 == 1:
                flg = True
                break
            x[0][n] = x[0][n] / 2
        if flg:
            break

        count = count + 1

    print(count)

Solution (Python):


N = int(input())
A = list(map(int, input().split()))

count = 0
imp = 0

while True:
    for i in range(0, N):
        if int(A[i]) % 2 == 1:
            imp = 1
            break

    if imp == 1:
        break

    for i in range(0, N):
        A[i] = int(A[i] / 2)
    count += 1

print(count)

Solution (Python):
N = int(input())
A = list(map(int,input().split()))

cnt = 0
check = True
while check:
  for i in range(N):
    if A[i] % 2 == 1:
      check = False
      break
    else:
      A[i] //= 2
  else:
    cnt += 1
    
print(cnt)

Solution (Python):
N = int(input())
S = list(map(int,input().split()))

cnt = 0
while True:
  check = sum([n % 2 for n in S])
  if check == 0:
    S = [n/2 for n in S]
    cnt += 1
  else:
    break
    
print(cnt)

Solution (Python):
N = int(input())
A = list(map(int, input().split()))
count = 0
while all([a%2 == 0 for a in A]):
  A = [a/2 for a in A]
  count += 1
print(count)

Solution (Python):
N = int(input())
*A, = map(int, input().split())
ans = 0
while True:
    ok = True
    for i in range(N):
        if A[i] % 2 != 0:
            ok = False
            break
        A[i] //= 2
    if not ok:
        break
    ans += 1
print(ans)

Solution (Python):
n = input()
l = list(map(int,input().split()))
cnt = 0

while True:
    if len([i for i in l if i%2 == 1]) == 0:
        cnt += 1
        l = [int(s/2) for s in l]
    else:
        break

print(cnt)

Solution (Python):
n = int(input())
a = list(map(int, input().split()))
cnt=[0]*n
for i in range(n):
	while a[i]%2==0:
		a[i]//=2
		cnt[i]+=1
print(min(cnt))

Solution (Python):
def divide_by_two(a):
    cnt = 0
    while True:
        if a % 2 == 0:
            a //= 2
            cnt += 1
        else:
            break

    return cnt


def main():
    n = int(input())
    a_list = list(map(int, input().split()))
    ans = 10 ** 9

    for a in a_list:
        ans = min(ans, divide_by_two(a))

    print(ans)


if __name__ == "__main__":
    main()

Solution (Python):
N = int(input())
A = list(map(int,input().split()))
ans = 0
def GCD(a,b):
    if a < b:
        a,b = b,a
    while a % b != 0:
        a,b = b, a % b
    return b
if __name__ =="__main__":
    for i in range(N-1):
       A[i+1] = GCD(A[i],A[i+1])
    while A[N-1] % 2 == 0:
        A[N-1] //= 2
        ans += 1
    print(ans)

Solution (Python):
N = int(input())
A = list(map(int,input().split()))
cnt = 0
while(1):
  exit = False
  for i in range(len(A)):
    if(A[i]%2 == 1): 
      exit = True
  if(exit == True): break
  for i in range(len(A)):
    A[i] /= 2
  cnt += 1
print(cnt)

Solution (Python):
n = int(input())
a_n = [int(i) for i in input().split()]

def is_all_even(nums):
    for n in nums:
        if n % 2 == 1:
            return False
    return True

ret = 0
while is_all_even(a_n):
    i = 0
    for a in a_n:
        a_n[i] = a / 2
        i += 1
    ret += 1

print(ret)

Solution (Python):
def main():
    n = int(input())
    a = list(map(int, input().split()))

    min_two_count = 2 ** 30

    for i in range(len(a)):
        temp_two_count = 0
        while a[i] % 2 == 0:
            temp_two_count += 1
            a[i] = a[i] // 2

        if min_two_count > temp_two_count:
            min_two_count = temp_two_count

    print(min_two_count)


if __name__ == "__main__":
    main()

Solution (Python):
N = int(input())
List = list(map(int,input().split()))

l = 10**6

for i in List:
  k=0
  while i%2 == 0:
    i/=2
    if i==0: break
    k+=1
    
  l = min(k,l)

print(l)

Solution (Python):
n=int(input())
a=list(map(int,input().split()))
cnt=0
for j in range(10**9):
    for idx,i in enumerate(a):
        if i %2==0:
            a[idx]=i//2
        else:
            print(cnt)
            exit()
    cnt+=1
print(cnt)

Solution (Python):
from sys import stdin
readline = stdin.buffer.readline
read = stdin.buffer.read
def i_input(): return int(input().rstrip())
def i_map(): return map(int, input().rstrip().split())
def i_list(): return list(i_map())

def main():
    N = i_input()
    A = i_list()
    ans = 0
    c = True
    while c:
        for i in range(N):
            if A[i] % 2 == 0 and A[i] > 0:
                A[i] //= 2
            else:
                c = False
                break
        else:
            ans += 1
    print(ans)

if __name__ == "__main__":
    main()

Solution (Python):
N = int(input())
A = list(map(int, input().split()))
count = 0
while all(a % 2 == 0 for a in A):
    A = [a/2 for a in A]
    count += 1
print(count)

Solution (Python):

N = int(input())
A = list(map(int,input().split()))

def div2(x):
    ans = 0
    while x%2==0:
        x //= 2
        ans += 1
    return ans

ans = 10000
for a in A:
    ans = min(ans, div2(a))
print(ans)

Solution (Python):
N = int(input())
A = list(map(int,input().split()))
ans = 0
while True:
  for i in range(N):
    if A[i] % 2 != 0:break
    A[i] //= 2 
  else:
    ans += 1
    continue   
  break  
print(ans)

Solution (Python):
from sys import stdin
n = stdin.readline().rstrip()
a = [int(x) for x in stdin.readline().rstrip().split()]
b = 0

while True:
   if all([x % 2 == 0 for x in a]):
      a = [x/2 for x in a]
      b += 1
   else:
      break

print(b)

Solution (Python):

import sys
from typing import List


def fast_input():
    return sys.stdin.readline()[:-1]


def is_all_even(nums: List[int]) -> bool:
    for n in nums:
        if n % 2 == 1:
            return False
    return True


def solve(n: int, nums: List[int]) -> int:
    manipulate_count = 0
    while is_all_even(nums):
        manipulate_count += 1
        nums = list(map(lambda x: int(x / 2), nums))
    return manipulate_count


def main():
    n = int(fast_input())
    a = list(map(int, fast_input().split()))
    result = solve(n, a)
    print(result)


main()

Solution (Python):
n = int(input())
a = list(map(int, input().split()))
res = 100
for i in range(n):
    for j in range(100):
        if a[i] % 2 == 1:
            break
        a[i] //= 2
    res = min(res, j)
    if res == 0:
        break
print(res)

Solution (Python):
n = int(input())
a = list(map(int, input().split()))
count = 0

while all(i % 2 == 0 for i in a):
    a = [j/2 for j in a]
    count += 1
print(count)

Solution (Python):

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

counter = 0

while True:
    even = True
    for i in a:
        if i % 2 != 0:
            even = False
            break
        else:
            even = True
    if even == False:
        break
    else:
        counter += 1
        a = list(map(lambda x: x / 2, a))

print(counter)

Solution (Python):
n = int(input())
arr = list(map(int, input().split()))

answer = 0
while True:
    for index in range(len(arr)):
        if arr[index] % 2 != 0:
            print(answer)
            exit()
        arr[index] //= 2
    answer += 1

Solution (Python):
import sys
input = sys.stdin.readline
sys.setrecursionlimit(10 ** 7)

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

ans = 10 ** 9
for v in a:
    tmp = 0
    while v % 2 == 0:
        tmp += 1
        v //= 2
    ans = min(ans, tmp)
print(ans)

Solution (Python):
n = int(input())
a = list(map(int, input().split()))

ans = 0
q = True
while q == True:
    for i in range(n):
        if a[i]%2 == 0:
            a[i] = a[i]//2
        else:
            print(ans)
            q = False
            break
    ans += 1

Solution (Python):
N = int(input())
A = list(map(int,(input().split())))

count = 0
is_continue = True
while(True):
    for i in A:
        if(i % 2 != 0):
            is_continue = False
            break
        if(i == 0):
            is_continue = False
            break

    if(is_continue == False):
        break
    else:
        counter = 0
        for i in A:
            A[counter] = i/2
            counter+=1   
    count += 1    
    
print(count)

Solution (Python):
import math
n = 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))

Solution (Python):
n = int(input())
a = list(map(int, input().split()))

i = 0
per = True
while per == True:
    for index in range(n):
        num = a[index]
        ans = divmod(num, 2)
        if num == 0 or ans[1] != 0:
            per = False
            break
        a[index] = ans[0]
    if per == True:
        i += 1
print(i)

Solution (Python):
import sys

readline = sys.stdin.readline
MOD = 10 ** 9 + 7
INF = float('INF')
sys.setrecursionlimit(10 ** 5)


def main():
    N = int(readline())
    A = list(map(int, readline().split()))

    ans = INF

    for x in A:
        cur = x
        score = 0
        while cur % 2 == 0:
            cur //= 2
            score += 1
        ans = min(ans, score)

    print(ans)


if __name__ == '__main__':
    main()

Solution (Python):
n = input().split()
a = list(map(int, input().split() ))
count = 0

while(True):
    T = False
    for i in range(len(a)):
        if a[i]%2 != 0:
            T=True
        else:
            a[i] = a[i] / 2

    if T:
        break

    count+=1

print(count)

Solution (Python):
def calc_num2(num):
  total = 0
  while num % 2 == 0:
    total += 1
    num = num / 2
  
  return total

num_count = input()
num_list = [int(i) for i in input().split(' ')]
ans_list = []
for num in num_list:
  ans_list.append(calc_num2(num))

print(min(ans_list))

Solution (Python):
a = int(input())
b = [int(i) for i in input().split(" ")]
count = 0
iti = 1
while iti == 1:
    for i in range(a):
        if b[i]%2 == 0:
            b[i]=b[i]//2
            iti = 1
        else :
            print(count)
            iti = 0
            break
    count = count+1

Solution (Python):
N = int(input())
A = list(map(int, input().split()))
 
ans = float("inf")
for i in range(N):
  a = A[i]
  ans_tmp = 0
  while a%2==0:
    a = a//2
    ans_tmp += 1
  ans = min(ans_tmp, ans)
print(ans)