JOI-kun 是一位家庭园艺专家,他在自己的花园里种植了 Joy 草。花园里有 $N$ 个花盆沿东西方向排列。这些花盆从西端开始编号为 $1, \dots, N$。共有 $N$ 株 Joy 草,每个花盆里种有一株。
春天,JOI-kun 注意到 Joy 草长出的叶子颜色各异,这与他的预期不符。此外,他还发现 Joy 草的生长情况不如预期。他查阅了书籍,发现了以下事实:
- Joy 草有 3 种,分别长出红色、绿色或黄色的叶子。
- 如果相同叶子颜色的 Joy 草靠得太近,它们的生长就会受到阻碍。
因此,JOI-kun 决定重新排列花盆,使得没有相同叶子颜色的 Joy 草相邻。由于花盆很重,JOI-kun 在单次操作中只能交换相邻花盆中的两株 Joy 草。换句话说,JOI-kun 在单次操作中可以选择任意花盆 $i$ ($1 \le i \le N - 1$),然后交换花盆 $i$ 和 $i + 1$ 中的 Joy 草。
请编写一个程序,给定 Joy 草的数量及其颜色,计算为了使没有相同叶子颜色的 Joy 草相邻,所需的最少操作次数。
输入格式
从标准输入读取以下数据:
$N$ $S$
$S$ 是一个长度为 $N$ 的字符串。其第 $i$ 个 ($1 \le i \le N$) 字符表示花盆 $i$ 中 Joy 草的叶子颜色,'R' 代表红色,'G' 代表绿色,'Y' 代表黄色。
输出格式
将所需的最少操作次数输出到标准输出。如果无法通过重新排列使得没有相同叶子颜色的 Joy 草相邻,则输出 $-1$。
数据范围
- $1 \le N \le 400$。
子任务
- (5 分) $N \le 15$。
- (55 分) $N \le 60$。
- (15 分) $S$ 中的每个字符均为 'R' 或 'G'。
- (25 分) 无附加限制。
样例
样例输入 1
5 RRGYY
样例输出 1
2
以下是一种使 Joy 草重新排列后没有相同叶子颜色相邻的方法: 首先,交换花盆 3 和 4 中的 Joy 草。 其次,交换花盆 2 和 3 中的 Joy 草。
在此之后,Joy 草的顺序将变为 RYRGY。由于无法通过最多 1 次操作完成重排,因此答案为 2。
样例输入 2
6 RRRRRG
样例输出 2
-1
在此示例中,无论进行何种操作,都无法使 Joy 草重新排列后没有相同叶子颜色相邻。
样例输入 3
20 YYGYYYGGGGRGYYGRGRYG
样例输出 3
8