#include <bits/stdc++.h>
using namespace std;
#define forsn(i, s, n) for (int i = int(s); i < int(n); i++)
#define forn(i, n) forsn(i, 0, n)
#define dforsn(i, s, n) for (int i = int(n) - 1; i >= int(s); i--)
#define dforn(i, n) dforsn(i, 0, n)
using vi = vector<int>;
using ii = pair<int, int>;
using vii = vector<ii>;
using ll = long long;
using ld = long double;
using vll = vector<ll>;
using vb = vector<bool>;
using pll = pair<ll, ll>;
using i128 = __int128;
using ull = unsigned long long;
#define sz(x) int(x.size())
#define all(x) begin(x), end(x)
#define pb push_back
#define eb emplace_back
#define fst first
#define snd second
int main() {
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int t;
cin >> t;
forn(_, t) {
string s;
cin >> s;
const int n = sz(s);
const int B = 4337;
vector<ull> pw(n + 1);
pw[0] = 1;
forn(i, n) pw[i + 1] = pw[i] * B;
vector<ull> pref(n + 1);
pref[0] = 0;
forn(i, n) pref[i + 1] = pref[i] * B + s[i];
int i = 0, len = 1, ret = 0;
while (true) {
if (i + len <= n - i - len) {
ull left = pref[i + len] - pref[i] * pw[len];
ull right = pref[n - i] - pref[n - i - len] * pw[len];
if (left == right) {
i += len, ret += 2, len = 1;
} else {
len++;
}
} else {
if (i < n - i) ret++;
break;
}
}
cout << ret << '\n';
}
return 0;
}