from bisect import bisect from itertools import accumulate N, K = map(int, input().split()) D = {0} AB = [] for _ in range(N): a, b = map(int, input().split()) D.add(a) D.add(b + 1) AB.append((a, b + 1)) D = sorted(list(D)) ND = len(D) dic = dict(zip(D, range(ND))) X = [0] * (ND + 1) for a, b in AB: X[dic[a]] += 1 X[dic[b]] -= 1 X = list(accumulate(X)) Y = [0] * ND for i in range(1, ND): Y[i] = Y[i - 1] + X[i - 1] * (D[i] - D[i - 1] - 1) + X[i] a = bisect(Y, K) - 1 print(D[a] - ((Y[a] - K) // X[a]))