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