#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=1e6+10,INF=1e16;
int n,m;
int xi[N],yi[N];
int dp[N][2];
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);
cin>>n>>m;
for(int i=0;i<=m;i++){
dp[i][0]=INF;
dp[i][1]=INF;
}
for(int i=1;i<=n;i++){
cin>>xi[i]>>yi[i];
}
for(int i=1;i<=n;i++){
for(int j=m;j>=0;j--){
if(j<=xi[i]){
dp[j][0]=min(dp[j][0],yi[i]);
}
if(j>xi[i]){
dp[j][0]=min(dp[j][0],dp[j-xi[i]][0]+yi[i]);
dp[j][1]=min(dp[j][1],dp[j-xi[i]][1]+yi[i]);
}
if(j<=2*xi[i]){
dp[j][1]=min(dp[j][1],yi[i]/2);
}
if(j>2*xi[i]){
dp[j][1]=min(dp[j][1],dp[j-2*xi[i]][0]+yi[i]/2);
}
}
}
cout<<dp[m][1]<<endl;
return 0;
}