n, m = map(int, input().split())
a = [list(map(int, input().split())) for _ in range(n)]
rows = []
for i in range(n):
rows.append(sorted((a[i][j], j) for j in range(m))[:3])
cols = []
for j in range(m):
cols.append(sorted((a[i][j], i) for i in range(n))[:3])
ans = float('inf')
for i in range(n):
for j in range(m):
candidates = []
for cost, col in rows[i]:
if col != j:
candidates.append((cost, i, col))
for cost, row in cols[j]:
if row != i:
candidates.append((cost, row, j))
candidates.sort()
total = a[i][j] + candidates[0][0] + candidates[1][0]
ans = min(ans, total)
print(ans)