#!/usr/bin/env python3 #fileencoding: utf-8 N = int(input()) table = [list(input()) for i in range(N)] rank = 10000 def solver(a, b): global N, table, rank if a == N: cnt = [0] * N used = [0] * (N+1) for i in range(N): for j in range(N): if table[i][j] == "o": cnt[i] += 1 k = 1 for i in range(1,N): if cnt[0] < cnt[i]: if used[cnt[i]] == 0: k += 1 used[cnt[i]] += 1 rank = min(rank, k) return if b == N: solver(a+1, 0) return if table[a][b] != "-": solver(a, b+1) return table[a][b] = "o" table[b][a] = "x" solver(a,b+1) table[a][b] = "x" table[b][a] = "o" solver(a,b+1) table[a][b] = "-" table[b][a] = "-" solver(0,0) print(rank)