def calculate_cubes(n, m, a):
total_cubes = 0
# Количество кубиков в первом ряду
total_cubes += n * 6
# Обрабатываем ряды от 2 до m
for row in range(1, m):
add_cubes = a[row] # Количество кубиков для текущего ряда
# Количество пирамидок, которые получат кубики в этом ряду
count = n // (2 ** (row + 1))
total_cubes += count * add_cubes
return total_cubes
# Ввод данных
n = int(input()) # Количество пирамидок
m = int(input()) # Количество рядов
a = [int(input()) for _ in range(m)] # Количество кубиков в каждом ряду
# Вывод результата
print(calculate_cubes(n, m, a))
total_cubes = 0
# Количество кубиков в первом ряду
total_cubes += n * 6
# Обрабатываем ряды от 2 до m
for row in range(1, m):
add_cubes = a[row] # Количество кубиков для текущего ряда
# Количество пирамидок, которые получат кубики в этом ряду
count = n // (2 ** (row + 1))
total_cubes += count * add_cubes
return total_cubes
# Ввод данных
n = int(input()) # Количество пирамидок
m = int(input()) # Количество рядов
a = [int(input()) for _ in range(m)] # Количество кубиков в каждом ряду
# Вывод результата
print(calculate_cubes(n, m, a))