#include "bits/stdc++.h" #define in std::cin #define out std::cout #define rep(i,N) for(LL i=0;i> N >> K; std::vectorA(N), B(N); rep(i, N) in >> A[i] >> B[i]; std::vectornums; std::mapindex; rep(i, N) { nums.push_back(A[i]); nums.push_back(B[i] + 1); } std::sort(nums.begin(), nums.end()); nums.erase(std::unique(nums.begin(), nums.end()), nums.end()); rep(i, nums.size()) index[nums[i]] = i; std::vectorimos(nums.size() + 1); rep(i, N) { ++imos[index[A[i]]]; --imos[index[B[i] + 1]]; } rep(i, imos.size() - 1) imos[i + 1] += imos[i]; LL cnt = 0; rep(i, imos.size() - 1) { LL left = nums[i], right = nums[i + 1] - 1; LL sum = imos[i] * (right - left + 1); if (cnt + sum >= K) { LL point = left + (K - cnt) / imos[i] + std::min((K - cnt) % imos[i], 1) - 1; out << point << std::endl; return 0; } cnt += sum; } }