/*
* Author: Geeza
*/
#include <bits/stdc++.h>
#define ld long double
#define ll long long
#define pb push_back
#define fin(a, n) for(int i = a; i < n; i++)
#define fjn(a, n) for(int j = a; j < n; j++)
#define all(a) a.begin(),a.end()
#define allr(a) a.rbegin(),a.rend()
#define FAST ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr)
using namespace std;
const double PI = acos(-1);
const int N = 105;
const ll oo = 0x3f3f3f3f3f3f3f3f;
const int mod = 1000000007, inf = 1e6;
string di[] = {"D","L", "U", "R", "UL", "UR", "DL", "DR"};
int dx[] = {+1, +0, +0, -1, -1, -1, +1, +1};
int dy[] = {+0, -1, +1, +0, -1, +1, -1, +1};
char dc[] = {'D', 'L', 'R', 'U'};
ll n;
vector<ll> v;
ll pw3[N];
vector<vector<ll>> dp;
ll get(ll mask, int d) {
return (mask / pw3[d]) % 3;
}
ll rec(int idx, ll mask) {
if (idx == n) return 0;
ll &ret = dp[idx][mask];
if (~ret) return ret;
ll ans = rec(idx+1, mask);
ll cnt[10] = {};
ll cont = 0, tmp = v[idx];
while (tmp) {
cnt[tmp%10]++;
tmp/=10;
}
bool good = true;
for (int i = 0; i <= 9; i++) {
if (cnt[i] > 2)
good = false;
}
if (good) {
for (int i = 0; i <= 9; i++) {
if (get(mask, i) + cnt[i] > 2)
good = false;
}
}
if (good) {
ll nwMask = mask;
for (int i = 0; i <= 9; i++) {
nwMask += cnt[i] * pw3[i];
}
ans = max(ans, rec(idx+1, nwMask) + v[idx]);
}
return ret = ans;
}
void solve() {
cin >> n;
v.assign(n, 0);
fin(0, n) cin >> v[i];
pw3[0] = 1;
for (int i = 1; i <= 9; i++) pw3[i] = pw3[i-1]*3;
ll mx = pw3[9] * 3;
dp = vector<vector<ll>> (n, vector<ll>(mx, -1));
cout << rec(0, 0) << "\n";
}
int main() {
FAST;
#ifndef ONLINE_JUDGE
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
#endif
int tt = 1; cin >> tt;
while(tt--){
solve();
}
return 0;
}
LyoKKiBBdXRob3I6IEdlZXphCiovCgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KCiNkZWZpbmUgbGQgbG9uZyBkb3VibGUKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBmaW4oYSwgbikgZm9yKGludCBpID0gYTsgaSA8IG47IGkrKykKI2RlZmluZSBmam4oYSwgbikgZm9yKGludCBqID0gYTsgaiA8IG47IGorKykKI2RlZmluZSBhbGwoYSkgYS5iZWdpbigpLGEuZW5kKCkKI2RlZmluZSBhbGxyKGEpIGEucmJlZ2luKCksYS5yZW5kKCkKI2RlZmluZSBGQVNUIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpLCBjaW4udGllKG51bGxwdHIpLCBjb3V0LnRpZShudWxscHRyKQoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGRvdWJsZSBQSSA9IGFjb3MoLTEpOwpjb25zdCBpbnQgTiA9IDEwNTsKY29uc3QgbGwgb28gPSAweDNmM2YzZjNmM2YzZjNmM2Y7CmNvbnN0IGludCBtb2QgPSAxMDAwMDAwMDA3LCBpbmYgPSAxZTY7CgpzdHJpbmcgZGlbXSA9IHsiRCIsIkwiLCAiVSIsICJSIiwgIlVMIiwgIlVSIiwgIkRMIiwgIkRSIn07CmludCBkeFtdID0geysxLCArMCwgKzAsIC0xLCAtMSwgLTEsICsxLCArMX07CmludCBkeVtdID0geyswLCAtMSwgKzEsICswLCAtMSwgKzEsIC0xLCArMX07CmNoYXIgZGNbXSA9IHsnRCcsICdMJywgJ1InLCAnVSd9OwoKbGwgbjsKdmVjdG9yPGxsPiB2OwpsbCBwdzNbTl07CnZlY3Rvcjx2ZWN0b3I8bGw+PiBkcDsKCmxsIGdldChsbCBtYXNrLCBpbnQgZCkgewogICAgcmV0dXJuIChtYXNrIC8gcHczW2RdKSAlIDM7Cn0KCmxsIHJlYyhpbnQgaWR4LCBsbCBtYXNrKSB7CiAgICBpZiAoaWR4ID09IG4pIHJldHVybiAwOwoKICAgIGxsICZyZXQgPSBkcFtpZHhdW21hc2tdOwogICAgaWYgKH5yZXQpIHJldHVybiByZXQ7CgogICAgbGwgYW5zID0gcmVjKGlkeCsxLCBtYXNrKTsKCiAgICBsbCBjbnRbMTBdID0ge307CiAgICBsbCBjb250ID0gMCwgdG1wID0gdltpZHhdOwogICAgd2hpbGUgKHRtcCkgewogICAgICAgIGNudFt0bXAlMTBdKys7CiAgICAgICAgdG1wLz0xMDsKICAgIH0KCiAgICBib29sIGdvb2QgPSB0cnVlOwoKICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IDk7IGkrKykgewogICAgICAgIGlmIChjbnRbaV0gPiAyKQogICAgICAgICAgICBnb29kID0gZmFsc2U7CiAgICB9CgogICAgaWYgKGdvb2QpIHsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSA5OyBpKyspIHsKICAgICAgICAgICAgaWYgKGdldChtYXNrLCBpKSArIGNudFtpXSA+IDIpCiAgICAgICAgICAgICAgICBnb29kID0gZmFsc2U7CiAgICAgICAgfQogICAgfQoKICAgIGlmIChnb29kKSB7CiAgICAgICAgbGwgbndNYXNrID0gbWFzazsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSA5OyBpKyspIHsKICAgICAgICAgICAgbndNYXNrICs9IGNudFtpXSAqIHB3M1tpXTsKICAgICAgICB9CiAgICAgICAgYW5zID0gbWF4KGFucywgcmVjKGlkeCsxLCBud01hc2spICsgdltpZHhdKTsKICAgIH0KICAgIHJldHVybiByZXQgPSBhbnM7Cn0KCnZvaWQgc29sdmUoKSB7CiAgICBjaW4gPj4gbjsKICAgIHYuYXNzaWduKG4sIDApOwogICAgZmluKDAsIG4pIGNpbiA+PiB2W2ldOwoKICAgIHB3M1swXSA9IDE7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSA5OyBpKyspIHB3M1tpXSA9IHB3M1tpLTFdKjM7CiAgICBsbCBteCA9IHB3M1s5XSAqIDM7CiAgICBkcCA9IHZlY3Rvcjx2ZWN0b3I8bGw+PiAobiwgdmVjdG9yPGxsPihteCwgLTEpKTsKCiAgICBjb3V0IDw8IHJlYygwLCAwKSA8PCAiXG4iOwp9CgppbnQgbWFpbigpIHsKICAgIEZBU1Q7CiNpZm5kZWYgT05MSU5FX0pVREdFCiAgICBmcmVvcGVuKCJpbnB1dC50eHQiLCJyIixzdGRpbik7CiAgICBmcmVvcGVuKCJvdXRwdXQudHh0IiwidyIsc3Rkb3V0KTsKI2VuZGlmCiAgICBpbnQgdHQgPSAxOyBjaW4gPj4gdHQ7CiAgICB3aGlsZSh0dC0tKXsKICAgICAgICBzb2x2ZSgpOwogICAgfQogICAgcmV0dXJuIDA7Cn0=