n, m = map(int, input().split())

C = list(map(int, input().split()))

# nまで
dp = [float('inf')] * (n + 1)
dp[0] = 0
for i in range(m):
    for j in range(n + 1):
        if j >= C[i]:
            dp[j] = min(dp[j - C[i]] + 1, dp[j])

print(dp[n])
 n, m = map(int, input().split()) n map(int, input().split()) map int input().split() ().split () input split m C = list(map(int, input().split())) C list(map(int, input().split())) list map(int, input().split()) map int input().split() ().split () input split dp = [float('inf')] * (n + 1) dp [float('inf')] * (n + 1) [float('inf')] float('inf') float 'inf' n + 1 n 1 dp[0] = 0 dp[0] dp 0 0 for i in range(m):
    for j in range(n + 1):
        if j >= C[i]:
            dp[j] = min(dp[j - C[i]] + 1, dp[j]) i range(m) range m for j in range(n + 1):
        if j >= C[i]:
            dp[j] = min(dp[j - C[i]] + 1, dp[j]) j range(n + 1) range n + 1 n 1 if j >= C[i]:
            dp[j] = min(dp[j - C[i]] + 1, dp[j]) j >= C[i] j C[i] C i dp[j] = min(dp[j - C[i]] + 1, dp[j]) dp[j] dp j min(dp[j - C[i]] + 1, dp[j]) min dp[j - C[i]] + 1 dp[j - C[i]] dp j - C[i] j C[i] C i 1 dp[j] dp j print(dp[n]) print dp[n] dp n dp = [float('inf')] * (n + 1) [float('inf')] * (n + 1) dp C = list(map(int, input().split())) list(map(int, input().split())) C n, m = map(int, input().split()) map(int, input().split()) n m = map(int, input().split()) map(int, input().split()) m
n, m = map(int, input().split())

C = list(map(int, input().split()))

# nまで
dp = [float('inf')] * (n + 1)
dp[0] = 0
for i in range(m):
    for j in range(n + 1):
        if j >= C[i]:
            dp[j] = min(dp[j - C[i]] + 1, dp[j])

print(dp[n])

