import sys
def func(n, vec):
# 一个数不用比较 直接是0
if n == 1:
return 0
#####################################################################
# 排序
# 思路:
# 1. 找v[0]与v[i]两个数除2向下取整 相等的数,相等的数是最少变化的
# 2. i--/i++ 重复步骤1,直至 (v[0] == v[i] || i == 0)/(i >= n)
#
#####################################################################
# 如何找两个数(a < b)除2向下取整 相等的数:
# flag 初始值为false, true的时候说明正对v[0]以及之前操作过的数(与v[0]相等)做除2向下取整操作
# 1. b = int(b / 2) b除2向下取整
# 2. if flag == True count += 1 * i, else count += 1
# 3. 如果 a == b 结束计算
# 4. if a > b, a 与 b 互换,从步骤1 开始计算, flag取反
# 5. if a < b, 从步骤1开始计算
#####################################################################
vec.sort()
count = 0
for i in range(1, n):
if vec[0] == vec[i]:
continue
a = vec[0]
b = vec[i]
flag = False
while(a != b):
b = int(b / 2)
if flag:
count += 1 * i
else:
count += 1
if a > b:
tmp = a
a = b
b = tmp
flag = not flag
vec[0] = a
return count
while True:
try:
# 读取输入
line1 = sys.stdin.readline().strip()
line2 = sys.stdin.readline().strip().split()
if not line1 or not line2:
break
n = int(line1)
arr = list(map(int, line2))
if len(arr) == 1:
print(0)
else:
# 输出结果
print(func(n, arr))
except EOFError:
break