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

dp =[[float("inf")] * (n+1) for _ in range(m+1)]
dp[0][0] = 0

for i in range(m):
    for j in range(n+1):
        if j >= c[i]:
            dp[i+1][j] = min(dp[i+1][j-c[i]] + 1, dp[i][j])
        else:
            dp[i+1][j] = dp[i][j]

print(dp[m][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 [float("inf")] * (n+1) for _ in range(m+1) for _ in range(m+1) _ range(m+1) range m+1 m 1 for _ in range(m+1) [float("inf")] * (n+1) [float("inf")] float("inf") float "inf" n+1 n 1 dp =[[float("inf")] * (n+1) for _ in range(m+1)] dp [[float("inf")] * (n+1) for _ in range(m+1)] dp[0][0] = 0 dp[0][0] [0] dp 0 0 0 for i in range(m):
    for j in range(n+1):
        if j >= c[i]:
            dp[i+1][j] = min(dp[i+1][j-c[i]] + 1, dp[i][j])
        else:
            dp[i+1][j] = dp[i][j] i range(m) range m for j in range(n+1):
        if j >= c[i]:
            dp[i+1][j] = min(dp[i+1][j-c[i]] + 1, dp[i][j])
        else:
            dp[i+1][j] = dp[i][j] j range(n+1) range n+1 n 1 if j >= c[i]:
            dp[i+1][j] = min(dp[i+1][j-c[i]] + 1, dp[i][j])
        else:
            dp[i+1][j] = dp[i][j] j >= c[i] j c[i] c i dp[i+1][j] = min(dp[i+1][j-c[i]] + 1, dp[i][j]) dp[i+1][j] [i+1] dp i+1 i 1 j min(dp[i+1][j-c[i]] + 1, dp[i][j]) min dp[i+1][j-c[i]] + 1 dp[i+1][j-c[i]] [i+1] dp i+1 i 1 j-c[i] j c[i] c i 1 dp[i][j] [i] dp i j dp[i+1][j] = dp[i][j] dp[i+1][j] [i+1] dp i+1 i 1 j dp[i][j] [i] dp i j print(dp[m][n]) print dp[m][n] [m] dp m n c = list(map(int, input().split())) list(map(int, input().split())) c dp =[[float("inf")] * (n+1) for _ in range(m+1)] [[float("inf")] * (n+1) for _ in range(m+1)] dp m = map(int, input().split()) map(int, input().split()) m n, m = map(int, input().split()) map(int, input().split()) n
n, m = map(int, input().split())
c = list(map(int, input().split()))

dp =[[float("inf")] * (n+1) for _ in range(m+1)]
dp[0][0] = 0

for i in range(m):
    for j in range(n+1):
        if j >= c[i]:
            dp[i+1][j] = min(dp[i+1][j-c[i]] + 1, dp[i][j])
        else:
            dp[i+1][j] = dp[i][j]

print(dp[m][n])

