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.
import sys
def rs(): return sys.stdin.readline().rstrip()
def ri(): return int(sys.stdin.readline())
def ria(): return list(map(int, sys.stdin.readline().split()))
def ws(s): sys.stdout.write(s); sys.stdout.write('\n')
def wi(n): sys.stdout.write(str(n)); sys.stdout.write('\n')
def wia(a, sep=' '): sys.stdout.write(sep.join([str(x) for x in a])); sys.stdout.write('\n')


from collections import Counter


def solve(s):
    n = len(s)
    best = 2

    c = Counter(s)
    for k, v in c.items():
        if v > best:
            best = v

    for sd1 in c.keys():
        for sd2 in c.keys():
            if sd1 == sd2:
                continue

            if c[sd1] + c[sd2] <= best:
                continue

            d1_idx = []
            d2_idx = []
            for i in range(n):
                if s[i] == sd1:
                    d1_idx.append(i)
                if s[i] == sd2:
                    d2_idx.append(i)
            cnt = 0
            last = sd2
            last_i = -1
            i = 0
            j = 0
            while i < len(d1_idx) or j < len(d2_idx):
                if last == sd1:
                    while j < len(d2_idx) and d2_idx[j] < last_i:
                        j += 1
                    if j < len(d2_idx):
                        last = sd2
                        last_i = d2_idx[j]
                        j += 1
                        cnt += 1
                    else:
                        break
                else:
                    while i < len(d1_idx) and d1_idx[i] < last_i:
                        i += 1
                    if i < len(d1_idx):
                        last = sd1
                        last_i = d1_idx[i]
                        i += 1
                        cnt += 1
                    else:
                        break
            if cnt % 2 == 1:
                cnt -= 1
            if cnt > best:
                best = cnt

    return n - best


def main():
    for _ in range(ri()):
        s = rs()
        wi(solve(s))


if __name__ == '__main__':
    main()
