Вам дано рядок довжини , що складається лише з символів R, G, B.
Рядок вважається циклічним: після символа s_n йде s_1, тобто індекси рахуються по модулю (наприклад, s_{n+1}=s_1, s_{n+2}=s_2).
Для кожної позиції розглянемо трійку послідовних символів (s_i,\; s_{i+1},\; s_{i+2}), де всі індекси беруться по модулю .
Назвемо трійку гарною, якщо всі три символи в ній попарно різні (тобто це R, G, B у будь-якому порядку).
За одну операцію ви можете вибрати будь-яку позицію та змінити s_i на будь-який з трьох символів R, G, B. Вартість операції дорівнює .
Знайдіть мінімальну кількість операцій, необхідних для того, щоб для кожного i=1,2,\dots,n трійка (s_i, s_{i+1}, s_{i+2}) була гарною.
В першому рядку задано число (1 \le n \le 10^6) — довжина рядка .
В другому рядку задано рядок який складається з символів , , .
Потрібно вивести одне число — мінімальну кількість операцій, необхідну для того, щоб усі трійки (s_i, s_{i+1}, s_{i+2}) для i=1,2,\dots,n стали гарними.
Якщо це неможливо, виведіть .
Приклад 1
Приклад 2
Для другого тестового випадку відповідь досягається при перетворенні рядка в рядок .
Підзадача ( балів) : (n \le 15)
Підзадача ( балів) : (Рядок складається лише з різних символів)
Підзадача ( балів) : (n \le 5000)
Підзадача ( балів) : Без додаткових обмежень