#include using namespace std; typedef long long ll; #define rep(i, n) for(ll i = 0, i##_len = (n); i < i##_len; i++) #define reps(i, s, n) for(ll i = (s), i##_len = (n); i < i##_len; i++) #define rrep(i, n) for(ll i = (n) - 1; i >= 0; i--) #define rreps(i, e, n) for(ll i = (n) - 1; i >= (e); i--) #define all(x) (x).begin(), (x).end() #define sz(x) ((ll)(x).size()) #define len(x) ((ll)(x).length()) int main() { cin.tie(0); ios::sync_with_stdio(false); // ifstream in("input.txt"); // cin.rdbuf(in.rdbuf()); ll n; cin >> n; vector s(n); rep(i, n) cin >> s[i]; vector win(n, 0); vector> will(n); rep(i, n) { rep(j, n) { if (s[i][j] == 'o') win[i]++; else if (s[i][j] == '-') will[i].insert(j); } } for(auto x : will[0]) { win[0]++; will[x].erase(0); } reps(i, 1, n) { for(auto x : will[i]) { if (win[i] > win[0]) { win[i]++; } else if (win[x] > win[0]) { win[x]++; } else if (win[i] > win[x]) { win[x]++; } else { win[i]++; } will[x].erase(i); } } vector ws(n); rep(i, n) ws[i] = win[i]; sort(all(ws), greater()); ll ans = 1; rep(i, n) { if (ws[i] > win[0]) ans++; else break; } cout << ans << endl; return 0; }