#include
#include
#include
using namespace std;
const int N=1010,M=5010;
int n,m,k;
int f[M][55];
struct node{
int a,b;
}q[N];
bool cmp(node a,node b){
return a.b<b.b;
}
int main(){
cin>>n>>m>>k;
for(int i=1;i<=n;i++){
cin>>q[i].a>>q[i].b;
q[i].a=min(q[i].a,q[i].b);
}
sort(q+1,q+n+1,cmp);
memset(f,0x3f,sizeof f);
f[0][0]=0;
for(int i=1;i<=n;i++){
for(int j=0;j<=m;j++){
for(int u=0;u<=k;u++){
if(j>=q[i].a&&u<k)
f[j][u+1]=min(f[j][u+1],f[j-q[i].a][u]+q[i].b);
f[j][u]=min(f[j][u],f[j][u]+q[i].a);
}
}
}
int cnt=0;
for(int i=0;i<=m;i++){
for(int j=0;j<=k;j++){
if(f[i][j]<=m){
cnt=max(cnt,j);
}
}
}
cout<<cnt<<' '<<f[m][cnt]<<endl;
return 0;
}