#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N=1e5+10;
const int INF=1000000001;
int n,m,f[N],s[N],sum[N];
int num,l[N],r[N],in[N],maxn[N];
void block(){
num=sqrt(n);
if(num*num!=n) ++num;
int lar=num;
if(num*(num-1)<=n&&num*num!=n) --lar;
for(int i=1;i<num;i++){
l[i]=r[i-1]+1;
r[i]=i*lar;
}
l[num]=r[num-1]+1;
r[num]=n;
for(int i=1;i<=r[num-1];i++){
in[i]=(i-1)/lar+1;
}
for(int i=l[num];i<=n;i++){
in[i]=num;
}
for(int i=1;i<=num;i++){
maxn[i]=-INF;
for(int j=l[i];j<=r[i];j++){
maxn[i]=max(maxn[i],s[j]);
}
}
}
int ask(int lt,int rt){
int res=-INF;
if(in[lt]==in[rt]){
for(int i=lt;i<=rt;i++){
res=max(res,s[i]);
}
return res;
}
for(int i=lt;i<=r[in[lt]];i++){
res=max(res,s[i]);
}
for(int i=in[lt]+1;i<in[rt];i++){
res=max(res,maxn[i]);
}
for(int i=l[in[rt]];i<=rt;i++){
res=max(res,s[i]);
}
return res;
}
inline int read(){
int s=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-') f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
s=(s<<3)+(s<<1)+(ch^48);
ch=getchar();
}
return s*f;
}
signed main(){
n=read(),m=read();
for(int i=1;i<=n;i++){
f[i]=read(),s[i]=read();
sum[i]=sum[i-1]+f[i];
}
int ans=INF;
for(int i=1;i<=n;i++){
if(sum[i]<m) continue;
int p=upper_bound(sum+1,sum+i+1,sum[i]-m)-sum;
ans=min(ans,ask(p,i));
}
printf("%lld\n",ans);
return 0;
}