#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long int; #define CHMAX(x,y) (x) = ((x) > (y)) ? (x) : ((x) = (y)); #define CHMIN(x,y) (x) = ((x) < (y)) ? (x) : ((x) = (y)); #define REP(i,n) for(int (i)=0;(i)<(n);++(i)) #define RREP(i,n,N) for(int (i)=(n);(i)<(N);++(i)) #define DREP(i,n) for(int (i)=(n);(i)>=0;--(i)) #define DRREP(i,n,N) for(int i=(n);(i)>=(N);--(i)) const int INF = 1e9; const ll INFL = 1e18; const int Mod = 1e9 + 7; const int dx[] = {0,1,0,-1}; const int dy[] = {1,0,-1,0}; int main(int argc, char const *argv[]) { ll B,N; cin >> B >> N; vector C(N); REP(i,N)cin >> C[i]; auto f = [&](ll K)->ll { ll res = 0; REP(i,N)res += abs(C[i]-K); return res; }; sort(C.begin(),C.end()); ll low = C[0],high = B; REP(i,N)high += C[i]; high = ((high + N-1)/N); while(high - low > 3) { ll c1 = (2*low + high)/3; ll c2 = (low + 2*high)/3; if(f(c1) < f(c2))high = c2; else low = c1; } ll answer = INFL; RREP(i,low,high)CHMIN(answer,f(i)); std::cout << answer << std::endl; }