// ナニソレイミワカンナイ #include <cstdio> #include <vector> #include <algorithm> int N; char result[6][6]; int win[6]; int rec(int x, int y){ if(y == N-1){ std::vector<int> v(win, win+N); std::sort(v.begin(), v.end()); v.erase(std::unique(v.begin(), v.end()), v.end()); return v.size() - (std::lower_bound(v.begin(), v.end(), win[0]) - v.begin()); } int nx, ny; if(x+1 == N){ ny = y + 1; nx = ny + 1; }else{ ny = y; nx = x + 1; } int res = N; if(result[y][x] == '-'){ win[x] += 1; res = std::min(res, rec(nx, ny)); win[x] -= 1; win[y] += 1; res = std::min(res, rec(nx, ny)); win[y] -= 1; }else{ res = std::min(res, rec(nx, ny)); } return res; } int main(){ scanf("%d", &N); for(int i=0;i<N;i++){ scanf("%*c"); for(int j=0;j<N;j++){ scanf("%c", &result[i][j]); if(result[i][j] == 'o'){win[i] += 1;} } } printf("%d\n", rec(1, 0)); }