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.
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define ld long double
#define pb push_back
#define eb emplace_back
#define nl "\n"
#define NL "\n"
#define Nl "\n"
#define lp(i,n) for(int i=0;i<n;i++)
#define rlp(n,j) for(int i=n-1;i>=0;i--)
#define F first
#define S second
#define GCD __gcd
#define all(a) a.begin(), a.end()
#define TESTS int T;cin>>T;while(T--)
int dx[] = { 1,0,0,-1 };
int dy[] = { 0,1,-1,0 };
const double pi = acos(-1.);
const double eps = 1e-15;
const int MOD = 1e9 + 7;
ll power(ll x, ll y)
{
	if (y == 0)
		return 1;
	ll s = power(x, y / 2);
	s *= s;
	//s %= MOD;
	if (y & 1)
		s *= x;
	//s %= MOD;
	return s;
}
ll Ceil(ll x, ll y)
{
	return (x + y - 1) / y;
}
ll gcd(ll a, ll b)
{
	if (b == 0)
		return a;
	if (a == 0)
		return b;
	return gcd(b, a % b);
}
ll lcm(ll a, ll b)
{
	return a * b / gcd(a, b);
}
string s;
int n;
bool can(int l, int r)
{
	char nxt = 'b';
	while (1)
	{
		if (l < 0 and r >= n)
			break;
		bool x1 = 1, x2 = 1;
		if (l >= 0 and s[l] == nxt)
			l--;
		else if (r < n and s[r] == nxt)
			r++;
		else
			return 0;
		nxt++;
	}
	return 1;
}
int main()
{
	ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
	TESTS
	{
		cin >> s;
		n = s.size();
		int start = -1;
		lp(i, n)
			if (s[i] == 'a')
				start = i;
		if (start == -1)
			cout << "No\n";
		else
			cout << (can(start - 1, start + 1) ? "YES\n" : " NO\n");
	}
}