const input = require('fs').readFileSync('/dev/stdin', 'utf8');

const list = input.trim().split('\n');
let [ n, m ] = list[0].split(' ');
n = Number(n);
m = Number(m);
let cm = list[1].trim().split(' ');
cm = cm.map(c => Number(c));

const dp = new Map();
dp.set(n, 0);
const memo = (count, yen) => {
  if (!dp.has(yen)) {
    return memo(count, yen - 1);
  }
  const min = Math.min(dp.get(yen), count);
  dp.set(yen, min);
  if (yen === 0) {
    return dp.get(yen);
  }

  for (let i = 0; i < m; i++) {
    const afterYen = yen - cm[i];
    if (afterYen < 0) {
      continue;
    } else if (dp.has(afterYen)) {
      dp.set(afterYen, Math.min(dp.get(afterYen), min + 1));
    } else {
      dp.set(afterYen, min + 1);
    }
  }

  return memo(min + 1, yen - 1);
}

console.log(memo(1, n));

