class Node:
def __init__(self, a, t):
self.a = a
self.t = t
self.s = a + t
n, m = map(int, input().split())
a = []
b = []
for i in range(n):
a.append(Node(int(input()), 0))
for i in range(n):
a[i].t = int(input())
b.append(Node(a[i].a, a[i].t))
for i in range(n):
a[i].s = a[i].t + a[i].a
a.sort(key=lambda x: x.s)
b.sort(key=lambda x: x.a)
t = a[0].s
num = 0
k = 0
for i in range(n):
if b[i].a < t:
if i == 0 or b[i].a != b[i - 1].a:
if num == m:
print(b[i - 1].a)
exit(0)
elif num > m:
print("-1")
exit(0)
num += 1
else:
if num == m:
print(b[i - 1].a)
exit(0)
elif num > m:
print("-1")
exit(0)
k = i
break
if b[n - 1].a < t:
if num == m:
print(b[n - 1].a)
exit(0)
elif num > m:
print("-1")
exit(0)
for i in range(k, n):
if b[i].a == t:
num += 1
else:
k = i
break
sum_ = 0
j = 0
for i in range(n):
if a[i].s == t:
sum_ += 2
else:
j = i
break
num -= sum_ // 2
if sum_ + num == m:
print(t)
exit(0)
if sum_ + num > m:
print("-1")
exit(0)
while True:
t += 1
sum_ *= 2
if t == a[j].s:
for j in range(j, n):
if a[j].s == t:
sum_ += 2
num -= 1
else:
break
if t == b[k].a:
for k in range(k, n):
if b[k].a == t:
num += 1
else:
break
if sum_ + num == m:
print(t)
exit(0)
if sum_ + num > m:
print("-1")
exit(0)