Наступает новый год. Это значит, что на codeforces пришла пора менять хендлы. Мишке захотелось поменять свой хендл, но таким образом, чтобы люди не забыли, кто он такой.
Чтобы все получилось так, как он хочет, он решил менять только регистры букв. Более формально, за одну смену хендла он может выбрать любой отрезок своего хендла $$$[i; i + l - 1]$$$ и сделать tolower или toupper ко всем буквам своего хендла на этом отрезке (более формально, поменять все строчные буквы на отрезке на соответствующие прописные или наоборот). Длина $$$l$$$ фиксирована для всех смен.
Так как на codeforces нельзя слишком часто менять хендлы, всего Мишка может сделать не более $$$k$$$ таких операций. Какого минимального значения может быть $$$min(lower, upper)$$$ (где $$$lower$$$ — количество строчных букв, а $$$upper$$$ — количество прописных букв) после оптимальной последовательности смен?
Первая строка входных данных содержит три целых числа $$$n, k$$$ и $$$l$$$ ($$$1 \le n, k, l \le 10^6, l \le n)$$$ — длину хендла Мишки, количество смен и длину отрезка.
Вторая строка входных данных содержит одну строку $$$s$$$, состоящую из $$$n$$$ строчных и прописных букв латинского алфавита — хендл Мишки.
Выведите одно целое число — минимальное значение, которого может достигнуть $$$min(lower, upper)$$$ после того, как Мишка сменит свой хендл не более $$$k$$$ раз так, как описано в условии задачи.
7 1 4 PikMike
0
15 2 2 AaAaAAaaAAAAaaA
2
14 2 6 aBcdEFGHIJklMn
0
9 2 2 aAaAAAaaA
1
Название |
---|