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) => {
  let nextCount;
  let nextYen = yen - 1;
  let result;
  if (!dp.has(yen)) {
    nextCount = count;
  } else {
    const min = Math.min(dp.get(yen), count);
    dp.set(yen, min);
    if (yen === 0) {
      result = dp.get(yen);
    } else {
      nextMin = min + 1;
      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), nextMin));
        } else {
          dp.set(afterYen, nextMin);
        }
      }  
    }
  }

  return result || memo(nextMin, nextYen);
}

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