def main(): n, d = list(map(int, input().split())) A = [list(map(int, input().split())) for _ in range(n)] inf = 1<<60 N = 1<> u & 1] Y = [u for u in range(n) if not bit >> u & 1] Z = [] a = sum([A[u][0] for u in X]) dp[bit].sort() for b, c in dp[bit]: if not Z or Z[-1][1] > c: Z.append((b, c)) for v in Y: ma, mb, mc = A[v] for b, c in Z: na = ma+a nb = max(na, b)+mb nc = max(nb, c)+mc dp[bit|1<