"""
A tu mamy mamuta! - rozwiązanie wzorcowe (naiwne)

Znajdujemy najdłuższy palindrom w tekście i podajemy jego długość
Ignorujemy znaki przestankowe i spacje.
"""

def pal_size(text, m, pos):
    """
    :param text:
    :param m:
    :param pos:
    :return: długość palindromu (nieparzystego) o środku w pos
    """
    if m-pos <= 1:
        return 1
    for j in range(1, min(pos+1, m-pos)):
        if text[pos+j] != text[pos-j]:
            return j-1
    return min(pos, m-pos-1) # palindrom do końca

def palindrome(text):
    """
    :param text: analizowany napis z dodanymi nawiasami (jako wartownikami)
    :return: długość najdłuższego palindromu
    """
    m = len(text)
    if m <= 2:  # krótkie słowa (tylko dodane znaki)
        return 0
    c = m // 2
    # palindrom centralny
    size = pal_size(text, m, c)
    #palindrom przesunięty
    for i in range(1, c):
        if size > m - 2*i - 2:     # już nie będzie większych palindromów
            break
        s = max(pal_size(text, m, c-i),
                pal_size(text, m, c+i))
        if s > size:
            size = s
    return size


n = int(input())
for i in range(n):
    # napis z usuniętymi znakami specjalnymi, konwersją na małe litery i gwiazdką pomiędzy każdymi
    # dwoma znakami (+ początek i koniec), dzięki temu szukamy tylko nieparzystych palindromów
    # do tego nawiasy jako wartownicy 
    line = "".join(["*", "*".join(input().translate(str.maketrans(
			 "", "",  " !,.?")).lower()), "*"]) 
    print(palindrome(line))
