import java.io.*;
import java.util.*;
public class P4
{

    static int finalCount = Integer.MAX_VALUE;

    public static void recurse (int[] coins, int currentTotal, int count, int index)
    {
	if (index >= 0 && index < coins.length)
	{
	    if (currentTotal == 0)
	    {
		finalCount = Math.min (finalCount, count);
		return;
	    }
	    if (coins [index] <= currentTotal)
	    {
		recurse (coins, currentTotal - coins [index], count + 1, index + 1);
		recurse (coins, currentTotal - coins [index], count + 1, index);
		recurse (coins, currentTotal, count, index + 1);
	    }
	}
    }


    public static void main (String[] args) throws IOException
    {
	BufferedReader in = new BufferedReader (new FileReader ("DATA4.txt"));
	PrintWriter out = new PrintWriter (new FileWriter ("OUT4.txt"));
	for (int a = 0 ; a < 5 ; a++)
	{
	    int total = Integer.parseInt (in.readLine ());
	    int num = Integer.parseInt (in.readLine ());
	    int coins[] = new int [num];
	    for (int b = 0 ; b < num ; b++)
	    {
		coins [b] = Integer.parseInt (in.readLine ());
	    }
	    Arrays.sort (coins);
	    recurse (coins, total, 0, 0);
	    out.println (finalCount);
	    finalCount = Integer.MAX_VALUE;
	}
	in.close ();
	out.close ();
    }
}

