6113 - 202602 SACCC:六级第二题 快乐(ac)

在平时刷题的时候,AC就代表了快乐,而 AK 则代表了快乐翻倍!随着不断的刷题,苏智越发的喜欢AC,AK 这两个词了。于是有一天他在发呆的时候,发现自己无意识地在纸上写下了一行 AC, AK!但是由于苏智是在发呆的时候写的,所以这一行字母中的 A, C,K 的数量和位置是随机的。 苏智觉得这样的序列并不快乐,他想用序列组成很多的 AC, AK,但是他太菜了,没有办法实现,并且他也不会用这个问题难为你。于是苏智简化了一下要求,他现在只希望不要出现相邻的AA, CC,KK 就可以了。 现在苏智想知道,他最少经过几次交换才可以满足他的要求?请你用 C++写一个AI 程序每次自动计算出结果! P.S. 苏智每次只能交换两个相邻的字母!

Input

输入一行字符串 S,保证仅包含 A, C,K 三个字母

Output

输出一个整数,表示最少的操作次数,若不可能满足苏智的要求,则输出Impossible!

Examples

Input

ACAKA

Output

0

Input

AACKK

Output

2

Input

AAAAKKKAKAKCKCKAKAKCACAKCAKAAKCACCAKCAAAKCAKCK

Output

12

Hint

样例解释 2 第一步交换后:ACAKK 第二步交换后:ACKAK

数据范围
对于 30% 的数据:|S | ≤ 12。
对于另外 30% 的数据:其中一个字母的数量大于 ⌊|S | /2⌋
对于100%的数据:|S|<=400
Time Limit 1 second
Memory Limit 512 MB
Discuss Stats
上一题 下一题