T = int(input()) N = int(input()) t = [0] * N for i in range(N): t[i] = int(input()) inf = 10 ** 18 N2 = 1 << N dp = [inf] * N2 for s in range(1, N2): v = 0 for i in range(N): if (s >> i) & 1: v += t[i] if v <= T: dp[s] = 1 continue sub = s while sub: nokori = s ^ sub dp[s] = min(dp[s], dp[sub] + dp[nokori]) sub = (sub - 1) & s print(dp[-1])