def read_data(): B = int(input()) N = int(input()) Cs = [int(input()) for i in range(N)] return B, N, Cs def solve(B, N, Cs): Cs.sort() median = Cs[N//2] min_move = sum([abs(median - c) for c in Cs]) surplus = sum([c - median for c in Cs]) if surplus + B >= 0: return min_move return binary_search(Cs, median, B) def binary_search(Cs, median, B): lower = 0 upper = median while upper > lower + 1: middle = (lower + upper) // 2 surplus = sum([c - middle for c in Cs]) if surplus + B >= 0: lower = middle else: upper = middle min_move = sum([abs(lower - c) for c in Cs]) return min_move if __name__ == '__main__': B, N, Cs = read_data() print(solve(B, N, Cs))