#include using namespace std; int main() { int n; cin >> n; vector g(n); for (int i = 0; i < n; i++) cin >> g[i]; for (int j = 0; j < n; j++) { if (g[0][j] == '-') { g[0][j] = 'o'; g[j][0] = 'x'; } } int win_0 = 0; for (int i = 0; i < n; i++) { if (g[0][i] == 'o') win_0++; } vector> un; for (int i = 1; i < n; i++) { for (int j = i + 1; j < n; j++) { if (g[i][j] == '-') { un.push_back({i, j}); } } } int k = (int)un.size(); int ans = 100; for (int bit = 0; bit < (1 << k); k++) { vector g2 = g; for (int i = 0; i < k; i++) { if (bit & (1 << i)) { g2[un[i].first][un[i].second] = 'o'; g2[un[i].second][un[i].first] = 'x'; } } int rank = 1; for (int i = 1; i < n; i++) { int win_i = 0; for (int j = 0; j < n; j++) { if (g2[i][j] == 'o') win_i++; } if (win_i > win_0) rank++; } ans = min(ans, rank); } cout << ans << endl; return 0; }