#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <queue>
#include <string>
#include <iomanip>
#include <vector>
#include <set>
#include <cctype>
#include <stack>
#include <map>
#include <list>
#include <array>
#include <deque>
#include <bitset>
typedef long long ll;
typedef long double lld;
#define Debug(x) cout<<#x<<":"<<x<<"("<<__LINE__<<")and("<<__FUNCTION__<<")"<<'\n'
using namespace std;
ll n, m, f[100005],s[100005];
inline ll read() {
ll x = 0, f = 1;
char ch = getchar();
while (ch < '0' || ch > '9') {
if (ch == '-') f = -1;
ch = getchar();
}
while (ch >= '0' && ch <= '9') {
x = x * 10 + ch - 48;
ch = getchar();
}
return x * f;
}
bool check(int x) {
ll sum = 0;
for(int i = 1 ; i <= n ; i++) {
if(s[i] > x) {
sum = 0;
}else{
sum += f[i];
}
if(sum >= m) {
return true;
}
}
return false;
}
int main() {
n = read(),m = read();
for(int i = 1 ; i <= n ; i++) {
f[i] = read(),s[i] = read();
}
int l = 0,r = 1000000001;
while(l + 1 < r) {
int mid = (l + r) / 2;
if(check(mid)) {
r = mid;
}else{
l = mid;
}
}
cout<<l + 1;
return 0;
}