#include <bits/stdc++.h>
using namespace std;
const int NMAX = 1e6 + 10;
int s[NMAX];
bool verify(const int &middle, const int &n, const int &k) {
int suma = 0;
for (int i = 1; i <= n; i++)
suma += min(s[i], middle);
return suma >= middle * k;
}
int main() {
freopen("grupuri.in", "r", stdin);
freopen("grupuri.out", "w", stdout);
int k, n; scanf("%d %d", &k, &n);
for (int i = 1; i <= n; i++)
scanf("%d", &s[i]);
int left = 1;
int right = 1e8;
int answer = 0;
while (left <= right) {
int middle = (left + right) / 2;
if (verify(middle, n, k)) {
left = middle + 1;
answer = middle;
}
else
right = middle - 1;
}
printf("%d\n", answer);
return 0;
}