N = int(input()) S = [list(input()) for _ in range(N)] l = [i for i in range(N)] from itertools import combinations l = combinations(l,2) l = list(l) all = N*(N-1)//2 now = N for s in range(2**all): d = [0 for _ in range(N)] pi = True for i in range(all): p,q = l[i] w = 0 if S[p][q] == "-": if s>>i & 1: w = 0 else: w = 1 elif (S[p][q] == "o" and s>>i & 1) or (S[p][q] == "x" and s>>i & 1 == 0): if S[p][q] == "o": w = 0 else: w = 1 else: pi = False break if w == 0: d[p] += 1 else: d[q] += 1 if not pi: continue ll = [] for i in range(len(d)): ll.append((d[i],i)) ll.sort(key=lambda x:(-x[0],x[1])) a = ll[0][0] b = 1 if ll[0][1] == 0: now = 1 break for i in range(1,N): if ll[i-1][0] != ll[i][0]: b += 1 if ll[i][1] == 0: now = min(now,b) break print(now)