# 함수1
def search(st, ed, arr, arr1):
mid = 0
ex = 0
i=0
j=0
mid = int((st + ed) // 2)
while True:
if arr[i][mid] < arr[i][ex]:
mid = ex
ex += 1
else :
ex += 1
if ex == ed:
arr[i][mid] = arr1[0][j]
i += 1
j += 1
if i == ed:
mid = 0
ex = 0
while True:
mid = int((st + ed) // 2)
if arr1[mid] < arr1[ex]:
mid = ex
ex = ex + 1
else:
ex = ex + 1
if ex == ed:
return arr1[mid]
# 함수2
# def choose(st, ed, arr):
# mid = 0
# ex = 0
# while True:
# mid = int((st + ed) // 2)
# if arr[mid] < arr[ex]:
# mid = ex
# ex = ex + 1
# else:
# ex = ex + 1
# if ex == ed:
# return arr[mid]
# main
data1 = []
data = []
n, m = map(int, input().split(' '))
for i in range(n):
v = input().split()
for j in range(n):
v[j] = int(v[j])
data.append(v)
print(search(0, n-1, data, data1))