#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);
    }
}