#include #include #include #include #include #include using namespace std; int calc(string &gw, int paidHoliday, vector &normals) { int holidays = 0; int max_holidays = 0; vector paid(gw.size(), 0); int idx = 0; while(paidHoliday > 0) { if (paidHoliday & 1) { paid[normals[idx]] = true; } idx++; paidHoliday >>= 1; } for (int i = 0; i < gw.size(); i++) { if (gw[i] == 'o' || paid[i]) { holidays++; } else { max_holidays = max(max_holidays, holidays); holidays = 0; } } max_holidays = max(max_holidays, holidays); return max_holidays; } int main() { string in1, in2; int d; cin >> d >> in1 >> in2; string gw = in1 + in2; vector normals; for (int i = 0; i < gw.size(); i++) { if (gw[i] == 'x') { normals.push_back(i); } } if (normals.size() <= d) { cout << gw.size() << endl; return 0; } int ans = 0; for (int i = (1 << normals.size()) - 1; i >= 0; i--) { if (__builtin_popcount(i) > d) { continue; } ans = max(ans, calc(gw, i, normals)); } cout << ans << endl; return 0; }