#include using namespace std; using ll = long long; templatebool chmax(T &a, const T &b) { if (abool chmin(T &a, const T &b) { if (b void vprint(T &V){ for(auto v : V){ cout << v << " "; } cout << endl; } int main(){ cin.tie(0); ios::sync_with_stdio(false); // input ll N; cin >> N; vector S(N); FOR(i, 0, N){ cin >> S.at(i); } ll rank = inf; FOR(mask, 0, 1<<15){ ll k = -1; map mp; FOR(i, 0, N){ FOR(j, i+1, N){ k++; if(S[i][j]=='-'){ if(mask>>k & 1){ mp[i]++; }else{ mp[j]++; } } else if(S[i][j]=='o'){ mp[i]++; } else{ mp[j]++; } } } // 結果集計 set se; FOR(i, 0, N){ ll win = mp[i]; se.insert(win); } ll player_win = mp[0]; ll dist = distance(se.begin(), se.lower_bound(player_win)); ll order = se.size() - dist; chmin(rank, order); } p(rank); return 0; }