using System; using System.Collections; using System.Collections.Generic; using System.Collections.Specialized; using System.Text; using System.Text.RegularExpressions; using System.Linq; using System.IO; class Program { static void Main(string[]args) { Magatro m = new Magatro(); m.Scan(); m.Solve(); } } public class Scanner { private StreamReader Sr; private string[] S; private int Index; private const char Separator=' '; public Scanner() { Index = 0; S = new string[0]; Sr = new StreamReader(Console.OpenStandardInput()); } private string[] Line() { return Sr.ReadLine().Split(Separator); } public string Next() { string result; if (Index >= S.Length) { S = Line(); Index = 0; } result = S[Index]; Index++; return result; } public int NextInt() { return int.Parse(Next()); } public double NextDouble() { return double.Parse(Next()); } public long NextLong() { return long.Parse(Next()); } public bool ScanToEnd(ref string s) { if (Sr.EndOfStream) { return false; } else { s = Sr.ReadLine(); return true; } } } public class Magatro { private long B, N; private long[] C; public void Scan() { Scanner sc = new Scanner(); B = sc.NextLong(); N = sc.NextInt(); C = new long[N]; for(int i = 0; i < N; i++) { C[i] = sc.NextLong(); } } public void Solve() { Array.Sort(C); long max = (C.Sum() + B) / N; long o; if (C.Length % 2 == 0) { o = (C[C.Length / 2] + C[C.Length / 2 - 1]) / 2; } else { o = (C[C.Length / 2]); } long ans = 0; for(int i = 0; i < N; i++) { ans += Math.Abs(Math.Min(max, o) - C[i]); } Console.WriteLine(ans); } }