C = int(input()) N = int(input()) A = list(map(int,input().split())) INF = 100010 dp = [INF] * (C+1) dp[0] = 0 for a in A: for i in range(1, C//a + 1): for j in reversed(range(C - a * i + 1)): dp[j + a * i] = min(dp[j + a * i],dp[j] + i) if dp[C] == INF: print(-1) else: print(dp[C])