import sys def main(): input = sys.stdin.read().split() idx = 0 N = int(input[idx]); idx += 1 M = int(input[idx]); idx += 1 black = set() for _ in range(M): r = int(input[idx]) - 1 c = int(input[idx + 1]) - 1 black.add((r, c)) idx += 2 min_x = N * N # Initialize with maximum possible X # Precompute T matrix: T[i][j] = 1 if (i,j) is white, else 0 # Instead of a full matrix, use a function to check on the fly def is_black(i, j): return (i, j) in black # Try each column j as the base column for j in range(N): for c_j in [0, 1]: # Determine R[i] based on column j and c_j R = [0] * N for i in range(N): T_ij = 0 if is_black(i, j) else 1 R[i] = T_ij ^ c_j # Determine C[k] for other columns C = [0] * N C[j] = c_j # Fixed base column for k in range(N): if k == j: continue cnt0 = 0 cnt1 = 0 for i in range(N): T_ik = 0 if is_black(i, k) else 1 expected_c = R[i] ^ T_ik if expected_c == 0: cnt0 += 1 else: cnt1 += 1 if cnt0 >= cnt1: C[k] = 0 else: C[k] = 1 # Calculate the number of valid cells valid = 0 for i in range(N): for k in range(N): T_ik = 0 if is_black(i, k) else 1 if (R[i] ^ C[k]) == T_ik: valid += 1 current_x = N * N - valid if current_x < min_x: min_x = current_x print(min_x) if __name__ == '__main__': main()