Let's call left cyclic shift of some string t_1 t_2 t_3 ... t_{n - 1} t_n as string t_2 t_3 ... t_{n - 1} t_n t_1.

Analogically, let's call right cyclic shift of string t as string t_n t_1 t_2 t_3 ... t_{n - 1}.

Let's say string t is good if its left cyclic shift is equal to its right cyclic shift.

You are given string s which consists of digits 0–9.

What is the minimum number of characters you need to erase from s to make it good?

Input

The first line contains single integer t (1 ≤ t ≤ 1000) — the number of test cases.

Next t lines contains test cases — one per line. The first and only line of each test case contains string s (2 ≤ |s| ≤ 2 ⋅ 10^5). Each character s_i is digit 0–9.

It's guaranteed that the total length of strings doesn't exceed 2 ⋅ 10^5.

Output

For each test case, print the minimum number of characters you need to erase from s to make it good.

Example

Input


3
95831
100120013
252525252525


Output


3
5
0

Note

In the first test case, you can erase any 3 characters, for example, the 1-st, the 3-rd, and the 4-th. You'll get string 51 and it is good.

In the second test case, we can erase all characters except 0: the remaining string is 0000 and it's good.

In the third test case, the given string s is already good.
T = int(input())

def isGood(st):
    if len(st) <= 2:
        return True
    even = st[0]
    odd = st[1]
    for i, c in enumerate(st):
        if i % 2 == 0:
            if c != even:
                return False
        else:
            if c != odd:
                return False
    if len(st) % 2 != 0 and even != odd:
        return False
    return True

for t in range(T):
    s = input()
    # if isGood(s):
    #     print(0)
    #     continue
    # down to 2 chars
    # down to one type of char
    # down to oscillating chars
    matrix = [[[-1, 0] for i in range(10)] for j in range(10)]
    d = {i: 0 for i in range(10)}
    for c in s:
        cint = int(c)
        d[cint] += 1
        for i, l in enumerate(matrix[cint]):
            if i == cint:
                continue
            if l[0] != cint:
                l[0] = cint
                l[1] += 1
        for i in range(10):
            if i == cint:
                continue
            l = matrix[i][cint]
            if l[0] != cint and l[0] != -1:
                l[0] = cint
                l[1] += 1
    # matrix now knows which is most common oscillation
    max_o = -1
    for i in range(10):
        for j in range(10):
            max_o = max(max_o, matrix[i][j][1])
    if max_o % 2 != 0:
        max_o -= 1
    max_c = max([d[x] for x in range(10)])
    to_sub = 0
    if max_o > max_c:
        # if max_o == len(s) or len(s) - max_o % 2 == 0:
        to_sub = len(s) - max_o
        # elif max_c > max_o + 1:
        #     to_sub = (len(s) - max_o) + 1
        # else:
        #     to_sub = len(s) - max_c
    else:
        to_sub = len(s) - max_c
    print(min(len(s) - 2, to_sub))
