#define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //#include using namespace std; int main() { int n; cin >> n; vectorp(n); for (int i = 0; i < n; i++)cin >> p[i]; vector a(n); vector>d; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (p[i][j] == 'o')a[i]++; if (p[i][j] == '-') { if (i > j)continue; d.push_back(make_pair(i, j)); } } } int ans = 10; for (int i = 0; i < 1 << d.size(); i++) { vectort = p; vectorb(n); for (int j = 0; j < d.size(); j++) { int x = d[j].first; int y = d[j].second; // cout << x << " " << y << endl; if (j&i) { b[x]++; } else b[y]++; } for (int j = 0; j < n; j++) { b[j] += a[j]; //cout << b[j] << endl; } int r = b[0]; int w = 1; sort(b.rbegin(), b.rend()); for (int j = 0; j < n; j++) { // cout << b[j]; if (j) { if (b[j - 1] > b[j])w++; }if (b[j] == r)break; } //cout << r << endl;; ans = min(w, ans); } cout << ans << endl; return 0; }