#include <bits/stdc++.h>
using namespace std;
int n, k, ans = -1, dist[2020];
vector<int> adj[2020], vet;
int main() {
  scanf("%d%d", &n, &k);
  for (int(i) = (0); (i) < (k); (i)++) {
    int v;
    scanf("%d", &v);
    vet.push_back(v - n);
  }
  sort((vet).begin(), (vet).end());
  vet.resize(unique((vet).begin(), (vet).end()) - vet.begin());
  for (int(i) = (0); (i) < (2020); (i)++)
    for (int(j) = (0); (j) < (((int)(vet).size())); (j)++)
      if (i + vet[j] >= 0 && i + vet[j] < 2020) adj[i].push_back(i + vet[j]);
  queue<int> fila;
  fila.push(1010);
  while (!fila.empty()) {
    int v = fila.front();
    fila.pop();
    if (v == 1010 && dist[v]) {
      ans = dist[v];
      break;
    }
    for (int(i) = (0); (i) < (((int)(adj[v]).size())); (i)++)
      if (!dist[adj[v][i]]) dist[adj[v][i]] = dist[v] + 1, fila.push(adj[v][i]);
  }
  printf("%d\n", ans);
}
