//求助大佬,这样做为啥不对
#include <bits/stdc++.h>
using namespace std;
int a[1010];
int main()
{
int x, n;
scanf("%d%d", &x, &n);
for (int i = 1; i <= n; i++)
{
scanf("%d", &a[i]);
}
sort(a + 1, a + 1 + n);
if (a[1] != 1)
{
printf("-1");
return 0;
}
long long ans = 0, sum = 0, idx = 1;
while (sum < x)
{
ans++;
sum += a[idx];
if (sum >= (a[idx + 1] - 1) && idx < n) idx++;
}
printf("%lld", ans);
return 0;
}