#include<stdio.h>
int main()
{
int n = 0;//行数
scanf("%d",&n);
while(n--){
int flag[3] = {0};//大写 小写 数字 各占一个,出现了加一,总和至少要两种
char arr[101] = {'\0'};
scanf("%s",arr);
int len = strlen(arr);
//解决2.4条件
if((arr[0] < '9' && arr[0] > '0') || len < 8)
{
printf("NO\n");
continue;
}
//解决1.3条件
for(int i = 0; i < len; ++i)
{
if((arr[i] < '9' && arr[i] > '0') || (arr[i] > 'A' && arr[i] < 'z'))
{
if(arr[i] < '9' && arr[i] > '0')
{
flag[0] = 1;
}
if(arr[i] > 'A' && arr[i] < 'Z')
{
flag[1] = 1;
}
if(arr[i] > 'a' && arr[i] < 'z')
{
flag[2] = 1;
}
}
}
//我将arr数组用在里面也能通过,测试用例可能有点少
//if(2 <= arr[0]+arr[1]+arr[2]){
// printf("YES\n");
//}
//else
// printf("NO\n");
//至少出现两个类型
if(2 <= flag[0]+flag[1]+flag[2]){
printf("YES\n");
}
else
printf("NO\n");
memset(arr,0,101);
}
}