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