/*
TASK:lift
LANG:C++
*/
#include<stdio.h>
#include<iostream>
using namespace std;
int br,i,t,j,n,m,k;
struct ftw{int r;int kg;};
ftw in1,ax1,in2,ax2,ppl[16];
void down()
{if ((ppl[1].kg+ppl[2].kg)>=t) cout<<"0"<<"\n"; 
    else if ((ppl[2].kg+ppl[3].kg)>=t) cout<<"0"<<"\n"; 
         else if ((ppl[1].kg+ppl[3].kg)>=t) cout<<"0"<<"\n"; 
if ((ppl[1].kg+ppl[2].kg)<t&&(ppl[2].kg+ppl[3].kg)<t&&(ppl[1].kg+ppl[3].kg)<t)
{br=ppl[1].r+ppl[2].r+ppl[3].r;
printf("%d\n",br);}

}
int main()
{cin>>n>>t;
 in1.r=0;
 ax1.r=201;
 in2.kg=0;
 ax2.kg=160;
    
for (i=1;i<=n;i++)  
    {cin>>ppl[i].r>>ppl[i].kg;
    if (in2.kg<ppl[i].kg){in2.kg=ppl[i].kg;in2.r=ppl[i].r;}
    if (ax2.kg>ppl[i].kg){ax2.kg=ppl[i].kg;ax2.r=ppl[i].r;}
    if (in1.r<ppl[i].r){in1.r=ppl[i].r;in1.kg=ppl[i].kg;}
    if (ax1.r>ppl[i].r){ax1.r=ppl[i].r;ax1.kg=ppl[i].kg;}
    }
if (n==1&&ppl[1].kg<t) printf("%d\n",ppl[1].r);
if ((in2.kg+ax2.kg)>=t) cout<<"0"<<"\n";  
if (n==2&&(in2.kg+ax2.kg)<t) if (in2.r>ax2.r)printf("%d\n",in2.r);
                                else printf("%d\n",ax2.r);
if (n==3)down();
 return 0;   
}
