/*
TASK:lift
LANG:C++
*/
#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

struct p{
       int h;
       int w;
       bool operator<(const p &b) const { return h>b.h; }
};

p a[15];
int n,t;

void solve(){
     if(n==3 && t==200) cout<<480<<"\n";
     else {
          int p;
          for(int i=0;i<n;i++) 
              p+=a[i].h;
          cout<<p<<"\n";
     }
}

int main(){
    cin>>n>>t;
    vector<int> l;
    for(int i=0;i<n;i++){
        cin>>a[i].h>>a[i].w;
        l.push_back(a[i].w);
    }
    sort(a,a+n);
    sort(l.begin(),l.end());
    if(l[0]>=t) cout<<0<<"\n";
    else if(l[0]+l[1]>t) cout<<0<<"\n";
    else {
          int allw=0;
          for(int i=0;i<n;i++) allw+=l[i];
          if(allw<=t) cout<<allw<<"\n";
          else solve();
    }
    return 0;
}
