#include using namespace std; using ll = long long; const ll linf=(1LL<<60) - 1; const int inf=(1LL<<30) - 1; const int mod=1000000007; const int MOD=998244353; const ll dx[] = {1, 0, -1, 0, 1, 1, -1, -1}; const ll dy[] = {0, 1, 0, -1, 1, -1, 1, -1}; #define overload4(a,b,c,d,name,...) name #define rep1(n) for(long long _=0;_ name(__VA_ARGS__) #define vv(type,name,h,...) vector name(h,vector(__VA_ARGS__)) #define vvv(type,name,h,w,...) vector name(h,vector(w,vector(__VA_ARGS__))) #define vvvv(type, name, h, w, n, ...) vector>>> name(h, vector>>(w, vector>(n, vector(__VA_ARGS__)))) struct Setting{ Setting(){ cin.tie(nullptr)->sync_with_stdio(0); fixed(cout).precision(12); } }Setting; // #define _GLIBCXX_DEBUG //----------------------------------- void solve() { int N, W; cin >> N >> W; vector v(N), w(N); rep(i, N) cin >> v[i] >> w[i]; int ans = -1; rep(i, N) if(w[i] <= W) ans = max(ans, v[i]); cout << ans << endl; } int main() { int T = 1; // cin >> T; while(T--) solve(); }