N,M=map(int, input().split()) D=[] for i in range(N): A=list(map(int, input().split())) A=sorted(A) D.append(A) ok,ng=-1,10**9+1 while abs(ok-ng)>1: #for _ in range(10): mid=(ok+ng)//2 A=D[0] for i in range(1,N): B=D[i] b=-1 AA=[] for a in A: while b+1=B[b+1]: if a<=B[b+1]: AA.append(B[b+1]) b+=1 A=sorted(list(set(AA))) if len(A)==0: ok=mid else: ng=mid #print(ok,ng) if ng==10**9+1: print(-1) else: print(ng)