#include<bits/stdc++.h>
using namespace std;
int n,m,kk,a[1010],x[1010];
int dp[110][110][2][1010];
int main(){
scanf("%d%d%d",&n,&kk,&m);
for(int i=1;i<=n;i++){
scanf("%d%d",&a[i],&x[i]);
}
for(int i=1;i<=n;i++){
for(int k=1;k<=kk;k++){
dp[i][0][0][k]=dp[i][0][0][k-1];
if(k>=x[i]) dp[i][0][0][k]=dp[i-1][0][0][k-x[i]]+a[i];
dp[i][0][1][k]=max(dp[i][0][1][k-1],dp[i-1][0][0][k]);
if(k>=x[i]) dp[i][0][1][k]=max(dp[i][0][1][k],dp[i-1][0][1][k-x[i]]+a[i]);
}
for(int j=1;j<=m;j++){
for(int k=1;k<=kk;k++){
dp[i][j][0][k]=dp[i][j][0][k-1];
if(k>=x[i]) dp[i][j][0][k]=max(dp[i-1][j][0][k-x[i]]+a[i],dp[i-1][j-1][0][k-x[i]]+a[i]*2);
dp[i][j][1][k]=max(dp[i][j][1][k-1],dp[i-1][j][0][k]);
if(k>=x[i]) dp[i][j][1][k]=max(dp[i][j][1][k],max(dp[i-1][j][1][k-x[i]]+a[i],dp[i-1][j-1][1][k-x[i]]+a[i]*2));
}
}
}
printf("%d",dp[n][m][1][kk]);
}