tr '\n' ' ' | gawk '{ n = $1 k = $2 ans = 0 for (mask = 0; mask < lshift(1, n); mask++) { tmp = 0 for (i = 0; i < n; i++) { if (and(mask, lshift(1, i))) { tmp = tmp + $(i+3) } } if (tmp <= k && tmp > ans) { ans = tmp } } print(ans) }'