Bajtek 在参加了计算机科学兴趣小组后,了解了什么是回文。回文是指从左往右读和从右往左读都一样的单词。例如,“oko”、“kajak”、“kobyłamamałybok”和“ababbaba”都是回文,而“kajaki”、“zoo”、“alamakota”和“abaababa”则不是。
Bajtek 对新学到的知识感到非常兴奋,他迅速打开笔记本(不是纸质笔记本,而是电脑程序),在里面写下了一个由字母 'a' 和 'b' 组成的单词。然而,过了一会儿他意识到,他的单词不一定是回文。他决定修复这个问题!在每一秒钟内,他可以选择两个相邻的字母并交换它们的位置。他能否通过执行一系列这样的操作(或者什么都不做)使他的单词变成回文?如果可以,最少需要多少秒才能完成这些更改?请帮助他编写一个程序来计算这个结果。
输入格式
输入仅一行,包含一个非空单词,即 Bajtek 笔记本中的单词。该单词仅包含字符 'a' 和 'b',长度不超过 $200\,000$。
输出格式
输出一个整数,表示将 Bajtek 笔记本中的单词变为回文所需的最少秒数。如果无法做到,则输出 $-1$。
样例
输入 1
abbaaab
输出 1
2
输入 2
ab
输出 2
-1
说明
在第一个样例中,Bajtek 可以(例如)执行一系列交换:abbaaab → babaaab → baabaab,从而成功地将单词变为回文,这需要两秒钟。可以证明,无法在更短的时间内将该单词变为回文。
在第二个样例中,Bajtek 的单词可能是 ab 或 ba。这两个单词都不是回文,因此他无法完成任务。