#include<cstdio>
#include<iostream>
using namespace std;
#include<unordered_map>
#include<cstring>
const int N = 110;
int n;
char str[N];
int main()
{
//密码串个数
cin >> n;
while(n --)
{
cin >> str;
//定义初始数字、小写字母、大写字母、特殊符号、是否重复值为0;
int num = 0, minE = 0, maxE = 0, special = 0, repeat = 0;
//输入的字符串长度
int len = strlen(str);
//利用哈希表记录某一字符的出现次数
unordered_map<char, int> charCount;
for(int i = 0; i < len; i ++)
{
charCount[str[i]] ++;
if(charCount[str[i]] > 2) repeat = 1;
//大写字母
if(str[i] >= 'A' && str[i] <= 'Z') maxE ++;
//小写字母
else if(str[i] >= 'a' && str[i] <= 'z') minE ++;
//数字
else if(str[i] >= '0' && str[i] <= '9') num ++;
else special ++;//特殊符号
}
//长度大于6,密码中有数字、英文、特殊符号且一个字符不出现3次
if(len >= 6 && num != 0 && special != 0 && (minE != 0 || maxE != 0) && repeat == 0)
cout << 2 << endl;
//长度大于6,密码中有数字、英文、特殊符号
else if(len >= 6 && num != 0 && special != 0 && (minE != 0 || maxE != 0))
cout << 1 << endl;
//其余情况
else cout << 0 << endl;
//恢复现场
charCount.clear();
num = 0, minE = 0, maxE = 0, special = 0, repeat = 0;
}
return 0;
}