import time import itertools import collections from functools import reduce from functools import wraps from collections import defaultdict # import pdb; pdb.set_trace() from operator import add ''' def timefn(fn): @wraps(fn) def measure_time(*args, **kwargs): t1 = time.time() res = fn(*args, *kwargs) t2 = time.time() print('@timefn:' + fn.__name__ + ' took ' + str(t2-t1) + ' seconds.') return res return measure_time ''' #def fn(*args, **kwargs): #@profile #@timefn def fn(): m, n = (int(i) for i in input().split()) a = [int(input()) for _ in range(n)] # m, n = 4, 4 # a = [1, 2, 3, 5] ans_lst = [] for i, _ in enumerate(a, 1): for perm in itertools.permutations(a, r=i): enum = list(itertools.chain(perm)) enum = reduce(lambda x, y: x + y, enum) ans_lst.append(enum) ans = max(list(filter(lambda x: n >= x, ans_lst))) print('{0}'.format(ans)) if __name__ == "__main__": fn()