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)