from itertools import product N = input() league = [list(raw_input()) for _ in xrange(N)] for i in xrange(N): if league[0][i] == '-': league[0][i] = 'o' league[i][0] = 'x' unfixed = [] for i in xrange(N): for j in xrange(i+1, N): if league[i][j] == '-': unfixed.append((i, j)) if len(unfixed) == 0: rank = map(lambda x:x.count('o'), league) print sum([r > rank[0] for r in rank])+1 exit() ans = N+1 for ox in product('ox', repeat=len(unfixed)): for k in xrange(len(unfixed)): i, j = unfixed[k] league[i][j] = ox[k] league[j][i] = 'o' if ox[k] == 'x' else 'x' rank = map(lambda x:x.count('o'), league) ans = min(ans, sum([r > rank[0] for r in rank])+1) print ans