#include using namespace std; int main() { int n; cin >> n; vector g(n); for (int i = 0; i < n; i++) cin >> g[i]; vector> un; for (int i = 0; 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); bit++) { 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'; } else { g2[un[i].second][un[i].first] = 'o'; g2[un[i].first][un[i].second] = 'x'; } } int rank = 1; int win_0 = 0; set higher; for (int i = 0; i < n; i++) { if (g2[0][i] == 'o') win_0++; } 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) higher.insert(win_i); } rank = 1 + higher.size(); ans = min(ans, rank); } cout << ans << endl; return 0; }