#include
#include
#define MAX(x,y) (((x)>(y))?(x):(y))
#define MIN(x,y) (((x)<(y))?(x):(y))
void get_num(int a[], char str[]) // 得到每个字母的个数
{
int i = 0;
while (str[i])
a[str[i++]-'a'] ++;
}
bool is_prime(int x) // 判断是不是质数
{
if (x == 0 || x == 1)
return false;
for ( int i=2; i*i<=x; i++)
if (x%i == 0)
return false;
return true;
}
int main()
{
int T; char str[105];
int a[26], minn, maxn;
scanf("%d", &T); // 第一个输入的整数
while (T --)
{
scanf("%s", str); // 每次输入的单词,注意这里的输入都是小写字母的,没有空格
minn = 100; // 将minn设为最大值
maxn = 0; // 讲maxn设为最小值
memset(a, 0, sizeof(a)); // 将记录的数组清0
get_num(a, str);
for ( int i=0; i<26; i++)
if (a[i]) // 我这个单词一定是要出现过,这样才能判断是不是出现最多的还是最少的
{
maxn = MAX(maxn, a[i]);
minn = MIN(minn, a[i]);
} // 这里不用排序,排序的复杂度至少是O(nlogn),而得到极值的复杂度只要扫一遍
if (is_prime(maxn-minn)) // 看看最大和最少的差是不是质数
printf("Lucky Word\n%d\n", maxn-minn);
else
printf("No Answer\n0\n");
}
return 0;
}