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>
#include<algorithm>
using namespace std;
#define int            		long long
#define uint           		unsigned long long
#define mloop(i)       		for(auto i=m.begin();i!=m.end();i++)
#define pb             		push_back
#define pll            		pair<ll,ll>
#define pii            		pair<int,int>
#define mod            		1000000007
void seive(int);
bool cmp(int, int);
vector<bool> prime(200002, true);


//main logic
void solve()
{
	string s;
	cin >> s;
	int pos = -1, i, j, k;
	unordered_map<char, int> umap;
	for (i = 0; s[i] != '\0'; i++)
	{
		if (s[i] == 'a')
		{
			pos = i;
			break;
		}
	}
	for (i = 0; i < s.length(); i++)
	{
		if (s[i] > char(97 + s.length() - 1))
		{
			cout << "NO" << endl;
			return;
		}
	}
	for (i = 0 ; i < s.length() ; i++)
	{
		umap[s[i]]++;
	}
	for (auto i : umap)
	{
		if (i.second >= 2)
		{
			cout << "NO" << endl;
			return;
		}
	}
	if (pos == -1)
	{
		cout << "NO" << endl;
		return;
	}
	if (s.length() == 2)
	{
		if (s == "ab" || s == "ba")
		{
			cout << "YES" << endl;
			return;
		}
		else
		{
			cout << "NO" << endl;
			return;
		}
	}
	for (i = 0; i < pos - 1 ; i++)
	{
		if (s[i] <= s[i + 1])
		{
			cout << "NO" << endl;
			return;
		}
	}
	for (i = pos + 1; i < s.length() - 1; i++)
	{
		if (s[i] >= s[i + 1])
		{
			cout << "NO" << endl;
			return;
		}
	}
	cout << "YES" << endl;
}


//main function
int32_t main()
{
#ifndef ONLINE_JUDGE
	freopen("input.txt" , "r" , stdin);
	freopen("output.txt" , "w" , stdout);
#endif
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);

	int t = 1;
	cin >> t;
	while (t--)
	{
		solve();
	}
	//solve();
	return 0;
}

//program to find prime numbers till n
void seive(int mx)
{
	prime[0] = prime[1] = false;
	for (int i = 2; i * i <= mx; i++)
	{
		if (prime[i])
		{
			for (int j = i * i; j <= mx; j += i)
			{
				prime[j] = false;
			}
		}
	}
}

bool cmp(int x, int y)
{
	if (x > y)
		return true;
	else
		return false;
}