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.

#pragma GCC optimize("Ofast")
#pragma GCC target("avx,avx2,fma")
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef long double ld;
typedef vector<int> vi;
typedef vector<ll> vll;
typedef vector<string> vst;
typedef set<int> si;
typedef set<ll> sll;
typedef map<ll, ll> mll;
typedef map<string, ll> msl;
typedef pair<ll, ll> pll;
typedef vector<pll> vpll;

#define fastio                        \
    ios_base::sync_with_stdio(false); \
    cin.tie(0);                       \
    cout.tie(0);
#define tc     \
    int tt;    \
    cin >> tt; \
    while (tt--)
#define rep(i, s, e) for (ll i = s; i < e; i++)
#define repr(i, s, e) for (ll i = s; i >= e; i--)
#define repit(it, A) for (auto it = A.begin(); it != A.end(); it++)
#define mk(A, n, T) T *A = new T[n];
#define in(A)         \
    for (auto &i : A) \
    cin >> i
#define out(A)        \
    for (auto &i : A) \
    cout << i << " "
#define uniq(A) A.erase(unique(all(A)), A.end())
#define all(A) A.begin(), A.end()
#define pb push_back
#define mp make_pair
#define mem1(A) memset(A, -1, sizeof(A))
#define mem0(A) memset(A, 0, sizeof(A))
#define ppc __builtin_popcount
#define ppcll __builtin_popcountll
#define M_PI 3.14159265358979323846
#define ff first
#define ss second
#define INF 1e18
#define spre(x) fixed << setprecision(x)

const ll M = 1e9 + 7;
ll mod(ll x) { return ((x % M + M) % M); }
ll addMod(ll a, ll b) { return mod(mod(a) + mod(b)); }
ll mulMod(ll a, ll b) { return mod(mod(a) * mod(b)); }

ll powMod(ll a, ll b)
{
    if (b == 0)
        return 1;
    if (b == 1)
        return a % M;
    ll res = 1;
    while (b)
    {
        if (b % 2 == 1)
            res = mulMod(res, a);
        a = mulMod(a, a);
        b = b / 2;
    }
    return res;
}

ll binpow(ll a, ll b)
{
    if (b == 0)
        return 1;
    ll res = binpow(a, b / 2);
    if (b % 2)
        return res * res * a;
    else
        return res * res;
}

ll gcd(ll a, ll b)
{
    if (b == 0)
        return a;
    return gcd(b, a % b);
}
ll lcm(ll a, ll b) { return a * b / (gcd(a, b)); }

ll findGCD(ll A[], ll n)
{
    ll res = A[0];
    rep(i, 1, n)
    {
        res = gcd(A[i], res);
        if (res == 1)
            return 1;
    }
    return res;
}

ll setBit(ll n, ll x) { return n | (1 << x); }
ll clearBit(ll n, ll x) { return n & ~(1 << x); }
ll toggleBit(ll n, ll x) { return n ^ (1 << x); }
bool getBit(ll n, ll x) { return (bool)(n & (1 << x)); }

void solve()
{
    string s;
    cin >> s;
    string temp;
    ll n=s.length();
    rep(i, 0, n)
    {
        temp.push_back('a' + i);
    }
    reverse (temp.begin(),temp.end());
    int l=0;
    int r=n-1;
    rep(i,0,n)
    {
        if (temp[i]==s[r])
        {
            r--;
        }
        else
        {
            if (temp[i]==s[l])
            {
                l++;
            }
            else
            {
                cout<<"NO"<<endl;
                return ;
            }
        }
    }
    cout<<"YES"<<endl;
}

int main()
{
    fastio;
    tc
    {
        solve();
    }
    // cerr << "Time : " << (float)clock() / CLOCKS_PER_SEC << " secs" << endl;
    return 0;
}