local mfl = math.floor local n, k = io.read("*n", "*n") local a, b ={}, {} for i = 1, n do a[i], b[i] = io.read("*n", "*n") end local function solve(x) local cnt = 0 for i = 1, n do if b[i] <= x then cnt = cnt + b[i] - a[i] + 1 elseif a[i] <= x then cnt = cnt + x - a[i] + 1 end end if cnt <= k - 1 then return false else return true end end local min, max = 0, 1000000000 while 1 < max - min do local mid = mfl((max + min) / 2) if solve(mid) then max = mid else min = mid end end print(max)