// A1443 象棋游戏 —— 统计不同棋子的种类数
//
// 结论:把 4 枚棋子变成完全相同,最少操作次数 = 不同种类数 k - 1。
// k = 1(全同) -> 0 次
// k = 2(3+1 或 2+2) -> 1 次
// k = 3(2+1+1) -> 2 次
// k = 4(全不同) -> 3 次
//
// 操作一:换 1 枚棋子(代价 1);操作二:把 2 枚相同的棋子同时换成另一种(代价 1)。
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
while (n--) {
char piece[4];
for (int i = 0; i < 4; i++) cin >> piece[i]; // 每组 4 枚棋子(两行两个字母)
vector<char> kinds; // 已经数过的棋子种类
for (int i = 0; i < 4; i++) {
bool seen = false;
for (int j = 0; j < (int)kinds.size(); j++) {
if (kinds[j] == piece[i]) {
seen = true;
break;
}
}
if (!seen) kinds.push_back(piece[i]); // 遇到新种类就记下来
}
cout << (int)kinds.size() - 1 << '\n';
}
return 0;
}