N = input() s = [list(raw_input()) for i in xrange(N)] win = [s[i].count('o') for i in xrange(N)] for i in xrange(1,N): if s[0][i] == '-': s[0][i] = 'o' s[i][0] = 'x' win[0] += 1 for i in xrange(1,N): if win[i] > win[0]: for j in xrange(1,N): if s[i][j] == '-': s[i][j] = 'o' s[j][i] = 'x' win[i] += 1 for i in xrange(1,N): for j in xrange(1,N): if win[i] >= win[0]: break if s[i][j] == '-': s[i][j] = 'o' s[j][i] = 'x' win[i] += 1 will = [s[i].count('-') for i in xrange(N)] while sum(will) > 0: tmp = max(xrange(N),key = lambda x: will[x], reverse = True) for i in xrange(N): if s[tmp][i] == '-': s[tmp][i] = 'o' s[i][tmp] = 'x' win[tmp] += 1 will[tmp] -= 1 tmpv = N rank = 0 for i in sorted(range(N),key = lambda x: win[x],reverse = True): if win[i] < tmpv: rank += 1 tmpv = win[i] if i == 0: print rank break