A string s of length n (1 ≤ n ≤ 26) is called alphabetical if it can be obtained using the following algorithm:

  * first, write an empty string to s (i.e. perform the assignment s := ""); 
  * then perform the next step n times; 
  * at the i-th step take i-th lowercase letter of the Latin alphabet and write it either to the left of the string s or to the right of the string s (i.e. perform the assignment s := c+s or s := s+c, where c is the i-th letter of the Latin alphabet). 



In other words, iterate over the n first letters of the Latin alphabet starting from 'a' and etc. Each time we prepend a letter to the left of the string s or append a letter to the right of the string s. Strings that can be obtained in that way are alphabetical.

For example, the following strings are alphabetical: "a", "ba", "ab", "bac" and "ihfcbadeg". The following strings are not alphabetical: "z", "aa", "ca", "acb", "xyz" and "ddcba".

From the given string, determine if it is alphabetical.

Input

The first line contains one integer t (1 ≤ t ≤ 10^4) — the number of test cases. Then t test cases follow.

Each test case is written on a separate line that contains one string s. String s consists of lowercase letters of the Latin alphabet and has a length between 1 and 26, inclusive.

Output

Output t lines, each of them must contain the answer to the corresponding test case. Output YES if the given string s is alphabetical and NO otherwise.

You can output YES and NO in any case (for example, strings yEs, yes, Yes and YES will be recognized as a positive answer).

Example

Input


11
a
ba
ab
bac
ihfcbadeg
z
aa
ca
acb
xyz
ddcba


Output


YES
YES
YES
YES
YES
NO
NO
NO
NO
NO
NO

Note

The example contains test cases from the main part of the condition.
import java.io.*;
import java.util.*;

public class q2 {

    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int tests = Integer.parseInt(br.readLine());

        for (int test = 1;test <= tests;test++) {
            String str = br.readLine();

            int i = 0;
            while(i < str.length() && str.charAt(i) != 'a') i++;
            
            if(i == str.length()){
                System.out.println("No");
                continue;
            }

            int l = i - 1,r = i + 1,c = 1;

            while(l >= 0 || r < str.length()){
                if(l >= 0 && (str.charAt(l) - 'a') == c){
                    l--;
                    c++;
                }else if(r < str.length() && (str.charAt(r) - 'a') == c){
                    r++;
                    c++;
                }else{
                    c = -1;
                    break;
                }
            }

            if(c == -1) System.out.println("No");
            else System.out.println("Yes");
        }
    }

    public static long[] mergeSort(long[] arr, int lo, int hi) {
        if (lo == hi) {
            long[] base = new long[1];
            base[0] = arr[lo];
            return base;
        }
        int mid = (lo + hi) / 2;
        long[] a = mergeSort(arr, lo, mid);
        long[] b = mergeSort(arr, mid + 1, hi);
        return mergeTwoSortedArrays(a, b);
    }
    public static long[] mergeTwoSortedArrays(long[] a, long[] b) {
        int i = 0, j = 0, k = 0;
        long[] ans = new long[a.length + b.length];
        while (i < a.length && j < b.length) {
            if (a[i] <= b[j]) {
                ans[k] = a[i];
                i++;
                k++;
            } else {
                ans[k] = b[j];
                j++;
                k++;
            }
        }

        while (i < a.length) {
            ans[k] = a[i];
            k++;
            i++;
        }

        while (j < b.length) {
            ans[k] = b[j];
            k++;
            j++;
        }

        return ans;
    }
}
