SP6035 DINGRP - Dinner

题目描述

在前往吃晚餐的路上,CCC 的参赛者们已经排起了队伍,等待享用美味的卷曲薯条。队伍中共有 $N$ 名参赛者($1 \le N \le 100$)。组织这次比赛的 Doctor V 发现程序员们不喜欢和使用不同编程语言的人站在一起。而幸好,这次比赛只允许使用两种编程语言:Gnold 和 Helpfile。参赛者们决定,只有当他们组成至少 $K$ 人的小组时,他们才会进入餐厅($1 \le K \le 6$)。 Doctor V 决定这样解决这个问题: - 他会找到一群使用相同语言并且连续站在一起的至少 $K$ 名参赛者,将他们送去吃饭。 - 剩下的参赛者将会填补空位,这样相同语言的参赛者就可能会再次聚集在一起。 Doctor V 已经记录下了参赛者排队的顺序,现在你需要判断是否可以让所有参赛者都去吃饭? 如果可以,最少需要组成多少个小组? 如果无法让所有人都去吃饭,输出 `-1`。 ### 输入格式 第一行包含两个整数 $N$ 和 $K$。 第二行包含 $N$ 个字符,表示排队的参赛者序列(`H` 表示使用 Helpfile 的参赛者,`G` 表示使用 Gnold 的参赛者)。 ### 输出格式 输出一个整数,表示将参赛者分成的小组的最少数量。如果无法让所有参赛者都去吃饭,则输出 `-1`。 ### 样例输入 ``` 7 2 GHHGHHG ``` ### 样例输出 ``` 3 ``` ### 解释 有七名参赛者:首先是一名 Gnold 程序员,接着是两名 Helpfile 程序员,然后又是一名 Gnold 程序员,再接着是另两名 Helpfile 程序员,最后是一名 Gnold 程序员。程序员们希望以两人一组的方式去吃饭。 首先,把前两个 `H` 送去吃饭,剩下 `GGHHG`。然后,再把后面两个 `H` 送去吃饭,剩下 `GGG`;最后,将剩下的 `G` 一起送去。两个 `H` 组连续的情况可能是巧合。 **本翻译由 AI 自动生成**

输入格式

输出格式