#include <bits/stdc++.h>
using namespace std;
#define int long long
#define sz(x) x.size()
#define all(v) v.begin(), v.end()
#define allr(v) v.rbegin(), v.rend()
#define F first
#define S second
bool canForm(vector<int> &students, int k, int councils)
{
int sum = 0;
for (int x : students)
sum += min(x, councils);
return sum >= councils * k;
}
void solve()
{
int k, n; cin >> k >> n;
vector<int> a(n);
int l = -1, r;
for (int i = 0; i < n; ++i) cin >> a[i], r += a[i];
while (l < r - 1)
{
int mid = l + (r - l) / 2;
if (canForm(a, k, mid))
l = mid;
else
r = mid;
}
cout << l;
}
signed main()
{
ios_base::sync_with_stdio(false), cin.tie(nullptr);
int tc = 1;
// cin >> tc;
while (tc--)
{
solve();
if (tc)
cout << '\n';
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKI2RlZmluZSBpbnQgbG9uZyBsb25nCiNkZWZpbmUgc3ooeCkgeC5zaXplKCkKI2RlZmluZSBhbGwodikgdi5iZWdpbigpLCB2LmVuZCgpCiNkZWZpbmUgYWxscih2KSB2LnJiZWdpbigpLCB2LnJlbmQoKQojZGVmaW5lIEYgZmlyc3QKI2RlZmluZSBTIHNlY29uZAogCmJvb2wgY2FuRm9ybSh2ZWN0b3I8aW50PiAmc3R1ZGVudHMsIGludCBrLCBpbnQgY291bmNpbHMpCnsKICAgIGludCBzdW0gPSAwOwogICAgZm9yIChpbnQgeCA6IHN0dWRlbnRzKSAKICAgICAgICBzdW0gKz0gbWluKHgsIGNvdW5jaWxzKTsKICAgIHJldHVybiBzdW0gPj0gY291bmNpbHMgKiBrOwp9CiAKdm9pZCBzb2x2ZSgpCnsKICAgIGludCBrLCBuOyBjaW4gPj4gayA+PiBuOwogICAgdmVjdG9yPGludD4gYShuKTsKICAgIGludCBsID0gLTEsIHI7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkgY2luID4+IGFbaV0sIHIgKz0gYVtpXTsKICAgIHdoaWxlIChsIDwgciAtIDEpIAogICAgewogICAgICAgIGludCBtaWQgPSBsICsgKHIgLSBsKSAvIDI7CiAgICAgICAgaWYgKGNhbkZvcm0oYSwgaywgbWlkKSkgCiAgICAgICAgICAgIGwgPSBtaWQ7CiAgICAgICAgZWxzZQogICAgICAgICAgICByID0gbWlkOyAgICAKICAgIH0KICAgIGNvdXQgPDwgbDsKfQogCnNpZ25lZCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSksIGNpbi50aWUobnVsbHB0cik7CiAgICBpbnQgdGMgPSAxOwogICAgLy8gY2luID4+IHRjOwogICAgd2hpbGUgKHRjLS0pCiAgICB7CiAgICAgICAgc29sdmUoKTsKICAgICAgICBpZiAodGMpCiAgICAgICAgICAgIGNvdXQgPDwgJ1xuJzsKICAgIH0KICAgIHJldHVybiAwOwp9