#include #include using namespace std; int n; char table[6][6]; int ans = 7; void solve(char T[6][6]){ bool found = false; for(int i = 0; i < n; i++){ for(int j = 0; j < n; j++){ if(T[i][j] == '-'){ found = true; T[i][j] = 'o'; T[j][i] = 'x'; solve(T); T[i][j] = 'x'; T[j][i] = 'o'; solve(T); } } } if(!found){ int zero = 0; for(int j = 0; j < n; j++) if(T[0][j] == 'o') zero++; set score; score.insert(zero); for(int i = 1; i < n; i++){ int tmp = 0; for(int j = 0; j < n; j++) if(T[i][j] == 'o') tmp++; score.insert(tmp); } int pos = 1; for(set::reverse_iterator it = score.rbegin(); it != score.rend(); it++){ if(*it == zero){ ans = min(ans, pos); break; } pos++; } } } int main(){ cin >> n; for(int i = 0; i < n; i++){ for(int j = 0; j < n; j++){ cin >> table[i][j]; } } for(int j = 0; j < n; j++){ if(table[0][j] == '-'){ table[0][j] = 'o'; table[j][0] = 'x'; } } solve(table); cout << ans << endl; return 0; }