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 fn(*args, **kwargs): m, n = map(int, input().split()) a = [] for i in range(m): a.append(input().split()) a = list(map(int, reduce(add, a))) ans_lst = [] for i, _ in enumerate(a, 1): for perm in itertools.permutations(a, r=i): enum = reduce(lambda x, y: x + y, perm) ans_lst.append(enum) ans = max(list(filter(lambda x: n >= x, ans_lst))) print(ans) #return ans if __name__ == "__main__": fn()