n, m = map(int, input().split()) players = [] for _ in range(m): card = [] for _ in range(n): row = list(map(int, input().split())) card.append(row) lines = [] # Rows for r in range(n): lines.append(set(card[r])) # Columns for c in range(n): col = [] for r in range(n): col.append(card[r][c]) lines.append(set(col)) # Diagonals diag1 = [] diag2 = [] for i in range(n): diag1.append(card[i][i]) j = (n - 1) - i diag2.append(card[i][j]) lines.append(set(diag1)) lines.append(set(diag2)) players.append(lines) min_union = float('inf') for i in range(m): for j in range(i + 1, m): for line_i in players[i]: for line_j in players[j]: current_union = len(line_i | line_j) if current_union < min_union: min_union = current_union print(min_union - 1)