def bsearch_right(low: int, high: int, pred) -> int: assert low <= high assert pred(high) lo = low hi = high while lo <= hi: m = (lo + hi) // 2 if pred(m): hi = m - 1 else: lo = m + 1 return hi + 1 # m 円以下が K 枚以上あるか def can(m: int) -> bool: res = 0 for a, b in xs: if m < a: continue res += min(m, b) - a + 1 if res >= K: return True return False N, K = map(int, input().split()) xs = [] for _ in range(N): A, B = map(int, input().split()) xs.append((A, B)) ans = bsearch_right(1, 10**9, can) print(ans)