// Wrongri-La Shower

#include <cstdio>
#include <algorithm>

typedef long long ll;

ll B, C[10];
int N;

ll remaining(int i, ll x){
    ll res = B;
    for(int j=i;j<N;j++){
        res += C[j] - x;
    }
    return res;
}

bool can(int i, ll x){
    ll r = remaining(i, x);
    for(int j=0;j<i;j++){
        if(r < x-C[j]){return false;}
        r -= x - C[j];
    }
    return true;
}

int main(){
    scanf("%lld", &B);
    scanf("%d", &N);

    for(int i=0;i<N;i++){
        scanf("%lld", C+i);
    }
    std::sort(C, C+N);

    // [i, N)は「減らす」
    // [0, i)は「増やす」
    ll minCost = 1001001001001001001ll;
    for(int i=0;i<N;i++){
        ll lb = i == 0 ? 0 : C[i-1], ub = C[i] + 1;
        while(ub-lb > 1){
            ll mid = (lb+ub) / 2;
            
            if(can(i, mid)){
                lb = mid;
            }else{
                ub = mid;
            }    
        }

        if(!can(i, lb)){break;}
        ll cost = remaining(i, lb) - B;
        for(int j=0;j<i;j++){
            cost += lb - C[j];
        }

        minCost = std::min(minCost, cost);
    }

    printf("%lld\n", minCost);
}