n,v = map(int,input().split())

vol = []
weight = []

for _ in range(n):
    vi, wi = map(int, input().split())
    vol.append(vi)
    weight.append(wi)

#容量v的最大价值
dp = [-float('inf') for _ in range(v+1)]
dp[0] =0
for i in range(n):
    for j in range(v,vol[i]-1,-1):
        dp[j] = max(dp[j - vol[i]]+weight[i],dp[j])
print(max(dp))
full = dp[-1]if dp[-1] > 0 else 0
print(full)