#include <stdio.h>
#include <string.h>
int main() {
int x;
char n[100] = {0};
scanf("%d", &x);
while (x--) {
//逻辑上没问题,因为是 多组输入、数组长度和两种字符,所以都要放循环
scanf("%s", n);
int flag1 = 0, flag2 = 0, flag3 = 0;
int len = strlen(n);
//第一个为数字和最少长度为8
if (n[0] >= '0' && n[0] <= '9' || len < 8)
{
printf("NO\n");
}
else
{
//任意两种即可
for (int i = 0; i < len; i++) {
//3种情况之外
if (n[i] < 48 || n[i] >= 58 && n[i] <= 64 || n[i] >= 91 && n[i] <= 96 ||n[i] > 122)
{
printf("NO\n");
}
else
{
if (n[i] >= 'a' && n[i] <= 'z') {
flag1 = 1;
}
if (n[i] >= 'A' && n[i] <= 'Z') {
flag2 = 1;
}
if (n[i] >= '0' && n[i] <= '9') {
flag3 = 1;
}
}
}
//满足条件输出YES
if ((flag1 + flag2 + flag3) >= 2)
printf("YES\n");
else //测试用例不够,如果只有全是一种字符的情况,不输出
printf("NO\n");
}
}
return 0;
}