import sys import math def can_assign(k, t, T, index, groups): if index == len(t): return True current = t[index] for i in range(k): if i > 0 and groups[i] == groups[i-1]: continue if groups[i] + current > T: continue new_groups = list(groups) new_groups[i] += current new_groups.sort() if can_assign(k, t, T, index + 1, new_groups): return True return False def main(): T = int(sys.stdin.readline()) N = int(sys.stdin.readline()) t = [int(sys.stdin.readline()) for _ in range(N)] t.sort(reverse=True) total_sum = sum(t) if total_sum == 0: print(0) return min_k = (total_sum + T - 1) // T min_k = max(min_k, 1) for k in range(min_k, N + 1): groups = [0] * k groups.sort() if can_assign(k, t, T, 0, groups): print(k) return print(N) if __name__ == "__main__": main()