N = int(raw_input()) v = [raw_input() for _ in xrange(N)] d = [[0 for i in xrange(N)] for i in xrange(N)] c = 0 def getWins(d): wins = sum(d[0]) lst = sorted(set([sum(d[i]) for i in xrange(N)])) return len(lst) - lst.index(wins) for i in xrange(N): for j in xrange(i + 1, N): if v[i][j] == "-": c += 1 mn = 6 for b in xrange(1 << c): a = 0 for i in xrange(N): for j in xrange(i + 1, N): if v[i][j] == "o": isWin = True elif v[i][j] == "x": isWin = False else: isWin = ((b >> a) & 1 == 1) a += 1 if isWin: d[i][j] = 1 d[j][i] = 0 else: d[i][j] = 0 d[j][i] = 1 mn = min(mn, getWins(d)) print mn