まず \(N = 1\) の場合を考える. vector \(v\) に対して何個 o が連続しているかは, for i in v.size() を回して,\(v[i]\) が o だったら カウント \(cnt\) を増やして,そうで無ければ \(cnt\) を 0 に戻す. \(i\) ごとに chmax(ans, cnt) を行う.
次に,\(N \geq 2\) のときを考える. \(D\) を vector の共通の長さとすれば, 同様に for d in D に対して,次を行う. [ すべての for i in N に対して \(s[i][d] = \) o のとき cnt++, そうでないとき cnt = 0. ]
使っている記号,マクロ等 "https://ecsmtlir.hatenablog.com/entry/2022/12/23/131925"
int main() {
ll n, md;
cin >> n >> md;
cinv(s);
ll ans = 0;
ll con = 0;
rep(d, md){
bool any = true;
rep(i,n){
if(s[i][d] != 'o') { any = false; break; }
}
if(any) con++;
else con = 0;
chmax(ans, con);
}
cout << ans << endl;
return 0;
}