#include using namespace std; using ll = long long; #define FOR(i,a,b) for(ll i=(a);i<(b);++i) #define ALL(v) (v).begin(), (v).end() #define p(s) cout<<(s)<=0; i--){ if(s[i]=='o'){ end = i; break; } } stringstream ss; FOR(i, start, end+1){ ss << s[i]; } return ss.str(); } ll max_o_len(string s){ ll L = s.size(); ll max_len = 0; FOR(i, 0, L){ if(s[i]=='o'){ ll len = 0; FOR(j, i, L){ if(s[j]=='o'){ len++; }else{ break; } } max_len = max(max_len, len); } } return max_len; } int main(){ cin.tie(0); ios::sync_with_stdio(false); // input ll D; cin >> D; string s; cin >> s; string temp; cin >> temp; s = s + temp; ll L = s.size(); string t = s; reverse(ALL(t)); ll left = count_o(s); ll right = count_o(t); // o??????oなる文字列 string u = rip_off_outer_o(s); ll center = 0; if(u.size()>0){ FOR(i, 0, u.size()){ if(u[i]=='x'){ // そこからKのばす string v = u; ll count = 0; FOR(j, i, v.size()){ if(v[j]=='x'){ v[j] = 'o'; count++; if(count==D) break; }else{ break; } } // vが書き換えられた ll len = max_o_len(v); center = max(center, len); } } } left += D; right += D; ll ans = max(left, right); ans = max(ans, center); p(ans); return 0; }