import kotlin.math.max fun main() { val builder = StringBuilder() val d = readInputLine().toInt() val c = readInputLine() + readInputLine() val runLength = runLength(c).toMutableList() if (runLength[0].first == 'x') { runLength[0] = runLength[0].copy(second = 15) } else { runLength.add(0, Pair('x', 15)) } if (runLength[runLength.lastIndex].first == 'x') { runLength[runLength.lastIndex] = runLength[runLength.lastIndex].copy(second = 15) } else { runLength.add(Pair('x', 15)) } var ans = 0 val arr = runLength.toTypedArray() for ((i, p) in arr.withIndex()) { if (p.first != 'o') { continue } if (arr[i - 1].second >= d) { if (arr[i - 1].second == d) { ans = max(ans, p.second + d + arr[i - 2].second) } else { ans = max(ans, p.second + d) } } if (arr[i + 1].second >= d) { if (arr[i + 1].second == d) { ans = max(ans, p.second + d + arr[i + 2].second) } else { ans = max(ans, p.second + d) } } } builder.appendln(ans) print(builder.toString()) } fun readInputLine(): String { return readLine()!! } fun runLength(s: String): List> { val ret = mutableListOf>() if (s.isNotEmpty()) { var prev = s[0] var cnt = 0 for (c in s) { if (c == prev) { cnt++ } else { ret.add(Pair(prev, cnt)) prev = c cnt = 1 } } ret.add(Pair(prev, cnt)) } return ret.toList() }