#include<bits/stdc++.h> using namespace std; char ch[10000]; int n,sum,k,o=1,c=-1; int main(){ scanf("%d%s", &n, ch); int k=n-1; for(int i=0;i<=k-1;i++){//左向右 for(int j=k;j>=i;j--){//右向左 if(j==i){//没找到相同 if(n%2==0||c!=-1){//n为偶数或ch[i]不是唯一不可以匹配的字符 o=0; break; } c=1;//n为奇数,ch[i]是第一个可以匹配的字符 sum+=n/2-i;//将他一道中间的步数 break; } if(ch[j]==ch[i]){//找相同的 for(int t=j;i<=k-1;i++){////往后移到对称的位置 ch[t]=ch[t+1]; } sum+=k-j; k--; break; } } if(!o) break; } if(!o) printf("Impossible\n"); else printf("%d\n", sum); return 0; } /************************************************************** Problem: 1842 User: liyunshuo Language: C++ Result: Wrong Answer ****************************************************************/