#include #include #include #include using namespace std; int main(){ int N; cin >> N; vector s(N); for (int i = 0; i < N; i++){ cin >> s[i]; } vector A, B; int S1 = 0, S2 = 0; for (int i = 0; i < N; i++){ for (int j = i + 1; j < N; j++){ int id = A.size(); A.push_back(i); B.push_back(j); if (s[i][j] != '-'){ S1 += 1 << id; if (s[i][j] == 'o'){ S2 += 1 << id; } } } } int M = A.size(); int ans = N; for (int i = 0; i < (1 << M); i++){ if ((i & S1) == S2){ vector cnt(N, 0); for (int j = 0; j < M; j++){ if (i >> j & 1){ cnt[A[j]]++; } else { cnt[B[j]]++; } } set st; for (int j = 0; j < N; j++){ if (cnt[j] > cnt[0]){ st.insert(cnt[j]); } } ans = min(ans, (int) st.size() + 1); } } cout << ans << endl; }