//package dwite6;
import java.util.*;
import java.io.*;

/**
 *
 * @author James Brocklebank
 */
public class _4 {

    public static int NUMCOINS;
    public static int CHANGE;
    public static int[] table;

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws IOException {
        Scanner fin = new Scanner(new FileReader("DATA4.txt"));
        PrintWriter fout = new PrintWriter(new FileWriter("OUT4.txt"));
        int nCoin;

        while (fin.hasNext()) {
            CHANGE = fin.nextInt();
            NUMCOINS = fin.nextInt();

            table = new int[CHANGE + 1];

            Arrays.fill(table, 5000);
            table[0] = 0; // it takes 0 coins to make 0 cents change

            for (int i = 0; i < NUMCOINS; i++) {
                nCoin = fin.nextInt();
                for (int x = 1; x <= CHANGE; x++) {
                    if (x >= nCoin) {
                        table[x] = Math.min(table[x],table[x-nCoin]+1);
                    }
                }
            }
            fout.println(table[CHANGE]);
        }



        fout.close();
        fin.close();
    }
}

