#include <stdio.h>
#include <string.h>
int main(void) {
int n, V;
scanf("%d%d", &n, &V);
int v[1005], w[1005];
for (int i = 0; i < n; i++)
scanf("%d%d", &v[i], &w[i]);
int f[1005];
memset(f, -0x3f, sizeof(f));
f[0] = 0;
for (int i = 0; i < n; i++)
for(int j = V; j >= v[i]; j--)
f[j] = (f[j] > f[j - v[i]] + w[i]) ? f[j] : f[j - v[i]] + w[i];
//要求1
int ans1 = 0;
for(int i = 0; i <= V; i++)
ans1 = (ans1 > f[i]) ? ans1 : f[i];
//要求2
int ans2 = 0;
if(f[V] < 0) ans2 = 0;
else ans2 = f[V];
printf("%d\n%d\n", ans1, ans2);
return 0;
}