n, I = map(int, input().split())
items = [tuple(map(int, input().split())) for _ in range(n)]

max_taste = [-float('inf')] * (I + 1)
max_taste[0] = 0

for s, a in items:
    for j in reversed(range(s, I + 1)):
        if max_taste[j - s] != -float('inf'):
            if max_taste[j] < max_taste[j - s] + a:
                max_taste[j] = max_taste[j - s] + a

result = max(filter(lambda x: x != -float('inf'), max_taste))
print(result)