import java.util.Scanner

object Main extends App {

    val mem = new Array[Int](50000)
    val scanner = new Scanner(System.in)
    var n = scanner.nextInt()
    val arrayC: Array[Int] = {
        val m = scanner.nextInt()
        new Array[Int](m)
    }
    input(arrayC.length)
    System.out.println(calc(n))

    def input(i: Int): Unit = {
        if (i == 0) return

        arrayC(i - 1) = scanner.nextInt()
        input(i - 1)
    }

    def calc(x: Int): Int = {
        if (x < 0) {
            return Integer.MAX_VALUE
        }
        if (x == 0) {
            return 0
        }
        if (mem(x) != 0) {
            return mem(x)
        }

        var i = 0
        var min = Integer.MAX_VALUE
        while (i < arrayC.length) {
            val temp = calc(x - arrayC(i))
            if (temp < min) {
                min = temp
            }
            i += 1
        }

        mem(x) = min + 1
        return mem(x)
    }
}