/*LA3641
置换群:
对于置换B,问是否存在A^2=B?
已经有存在的规律,总结如下:
对于循环单元群B(这里之不能再细分)
1、若元素个数为奇数,则一定存在A
2、若元素个数为偶数,则两个不想交的群B1,B2,
一定存在A^2=B1B2(这道题只要求判断是否存在,没有要求个数);
3、对于循环群B=(B1)(B2)(B3)...(Bn)分解成单元群,
存在A的“充分必要”是偶数元素个数的循环群个数是偶数
*/
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<stdlib.h>
#include<math.h>
#include<queue>
#include<vector>
#include<map>
using namespace std;
int t;
int nums[30],vis[30];
char B[30];
int main(){
cin>>t;
while(t--){
scanf("%s",B);
memset(vis,0,sizeof(vis));
memset(nums,0,sizeof(nums));
for(int i=0;i<26;i++){//与书上思路不同,以B的顺序扫描
int k=B[i]-'A';
if (!vis[k]){
int cnt=0;
while (!vis[k]) {
vis[k]=1;
k=B[k]-'A';
cnt++;
}
nums[cnt]++;
}
}
bool ans=true;
for(int i=2;i<=26;i+=2)
if (nums[i]%2!=0) ans=!ans;
if(ans) cout<<"Yes\n"<<endl;else cout<<"No"<<endl;
}
return 0;
}