defcheck(n, s):#检查是否是回文数
temp =set()if n%2==0:for i inrange(26):if s.count(chr(ord('a')+i))%2!=0:#出现不可匹配,不是回文数print("Impossible")returnFalseelse:returnTrueelse:for i inrange(26):if s.count(chr(ord('a')+ i))%2!=0:#不可匹配添加到集合里
temp.add(chr(ord('a')+ i))iflen(temp)>1:#如果多个不可匹配,不是回文数print("Impossible")returnFalseelse:returnTruedefstep(n, s, res):for i inrange(n//2):#减少无效循环if s[i:].count(s[i])!=1:#成对
temp = s[::-1].index(s[i])#倒叙下标就是移动步数
s.pop(len(s)- temp -1)#弹出该匹配成功
res += temp #添加到总部数else:
res += n//2- i
return res
n =int(input())
s =list(input())
res =0if check(n, s):print(step(n, s, res))