#include <bits/stdc++.h>
using namespace std;
int n, k, i, j, a[2005], ans, now;
bitset<2005> dp[2];
int main() {
  while (scanf("%d%d", &n, &k) != EOF) {
    for (i = 0; i < k; i++) {
      cin >> j;
      a[j]++;
    }
    int now = 0;
    dp[now][1000] = 1;
    for (int i = 1; i <= 2000; i++) {
      now = 1 - now;
      dp[now].reset();
      for (int j = 0; j <= 1000; j++) {
        if (a[j]) {
          dp[now] |= (dp[1 - now] << j) >> n;
        }
        if (dp[now][1000]) {
          printf("%d\n", i);
          return 0;
        }
      }
    }
    puts("-1");
  }
  return 0;
}
