import copy import itertools n=int(input()) l=[list(input()) for i in range(n)] num=[i for i in range(n)] L=list(itertools.combinations(num,2)) ans=n for i in range(2**(n*(n-1)//2)): l2=copy.deepcopy(l) x=format(i,'0'+str(n*(n-1)//2)+'b') for j in range(len(x)): if l2[L[j][0]][L[j][1]]=='-': if x[j]=='1': l2[L[j][0]][L[j][1]]='o' l2[L[j][1]][L[j][0]]='x' else: l2[L[j][0]][L[j][1]]='x' l2[L[j][1]][L[j][0]]='o' win=[] for j1 in range(n): ct=0 for j2 in range(n): if l2[j1][j2]=='o': ct+=1 win.append(ct) y=win[0] win=list(set(win)) win.sort() win.reverse() ans=min(ans,win.index(y)+1) print(ans)