#include <algorithm>
#include <cctype>
#include <iostream>
#include <string>
#include <vector>
void rozwiaz_test() {
	std::string oryginalny_tekst;
	std::getline(std::cin, oryginalny_tekst);
	std::string uproszczony_tekst = "\1";
	for (char znak : oryginalny_tekst) {
		if (std::isalpha(znak))
			uproszczony_tekst += std::tolower(znak);
	}
	int dlugosc = uproszczony_tekst.size();
	int wynik = 0;
	for (int parzystosc = 0; parzystosc < 2; parzystosc++) {
		std::vector<int> promienie(dlugosc);
		int a = 0;
		int b = 0;
		for (int i = 1; i < dlugosc; i++) {
			if (i <= b)
				promienie[i] = std::min(promienie[a + b - i + parzystosc], b - i);
			while (uproszczony_tekst[i - promienie[i] - 1] 
				== uproszczony_tekst[i + promienie[i] + 1 - parzystosc]) {
				promienie[i]++;
			}
			if (b < i + promienie[i]) {
				a = i - promienie[i] - parzystosc;
				b = i + promienie[i];
			}
		}
		for (int j = 1; j < dlugosc; j++) {
			int dlugosc_palindromu = promienie[j] * 2 - parzystosc + 1;
			wynik = std::max(wynik, dlugosc_palindromu);
		}
	}
	std::cout << wynik << '\n';
}
int main() {
	int liczba_testow;
	std::cin >> liczba_testow;
	std::ws(std::cin);
	for (int i = 0; i < liczba_testow; i++) {
		rozwiaz_test();
	}
	return 0;
}