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

dp = [[float('inf')]*50010 for _ in range(25)]
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][j-c[i]] + 1, dp[i][j], dp[i+1][j-c[i]]+ 1)
        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')]*50010 for _ in range(25) for _ in range(25) _ range(25) range 25 for _ in range(25) [float('inf')]*50010 [float('inf')] float('inf') float 'inf' 50010 dp = [[float('inf')]*50010 for _ in range(25)] dp [[float('inf')]*50010 for _ in range(25)] 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][j-c[i]] + 1, dp[i][j], dp[i+1][j-c[i]]+ 1)
        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][j-c[i]] + 1, dp[i][j], dp[i+1][j-c[i]]+ 1)
        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][j-c[i]] + 1, dp[i][j], dp[i+1][j-c[i]]+ 1)
        else:
            dp[i+1][j] = dp[i][j] j >= c[i] j c[i] c i dp[i+1][j] = min(dp[i][j-c[i]] + 1, dp[i][j], dp[i+1][j-c[i]]+ 1) dp[i+1][j] [i+1] dp i+1 i 1 j min(dp[i][j-c[i]] + 1, dp[i][j], dp[i+1][j-c[i]]+ 1) min dp[i][j-c[i]] + 1 dp[i][j-c[i]] [i] dp i j-c[i] j c[i] c i 1 dp[i][j] [i] dp i j 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+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')]*50010 for _ in range(25)] [[float('inf')]*50010 for _ in range(25)] dp 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()))

dp = [[float('inf')]*50010 for _ in range(25)]
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][j-c[i]] + 1, dp[i][j], dp[i+1][j-c[i]]+ 1)
        else:
            dp[i+1][j] = dp[i][j]

print(dp[m][n])
