INF = float("inf") N = int(input()) H = list(map(int, input().split())) ans = 0 p = 1 for times in range(64): if len(H) == 0: break idx = None min_diff = INF for i in range(len(H)): if H[i] <= p: ans += 1 p *= 2 H.remove(H[i]) break diff = H[i] - (1 << (H[i].bit_length() - 1)) if diff == 0: diff = (1 << (H[i].bit_length() - 1)) - 1 if diff < min_diff: min_diff = diff idx = i else: ans += 1 H[idx] -= p p *= 2 print(ans + len(H))