import sys from functools import lru_cache def main(): T = int(sys.stdin.readline()) N = int(sys.stdin.readline()) t = [int(sys.stdin.readline()) for _ in range(N)] sum_t = [0] * (1 << N) for mask in range(1 << N): total = 0 for i in range(N): if mask & (1 << i): total += t[i] sum_t[mask] = total full_mask = (1 << N) - 1 sum_total = sum(t) @lru_cache(maxsize=None) def can_divide(mask, groups_left): if groups_left == 0: return mask == 0 s = mask while True: if s != 0 and sum_t[s] <= T: new_mask = mask ^ s if can_divide(new_mask, groups_left - 1): return True if s == 0: break s = (s - 1) & mask return False for k in range(1, N + 1): if sum_total > k * T: continue can_divide.cache_clear() if can_divide(full_mask, k): print(k) return print(N) if __name__ == "__main__": main()