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>
#define  line cout<<"\n";
#define forvec(v) for(auto it=v.begin();it!=v.end();it++)  
#define F(i,a,b) for(int i = (int)(a); i <= (int)(b); i++)
#define RF(i,a,b) for(int i = (int)(a); i >= (int)(b); i--)
#define ll long long int
#define pb push_back
#define all(x) x.begin(),x.end()
#define rough(x)  cout<<"rough"<<x;

using namespace std;

int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
ll a,b,c,num,n,total=0,sum=0,f=0,mini,maxi;
string s,s2;
vector<ll> v,v1,v2;
char ch;
set<ll> set2,set1;
unordered_map<char,int> m1;
vector<ll>::iterator it,it1;  
set<ll>::iterator it2; 
cin>>num;
while(num--)
{
	v.clear();
	cin>>s;
	int len=s.length();
	m1.clear();
	int maxx=0;
	f=0;
	for(int i=0;i<len;i++)
	{
		if(i>0 && i<len-1)
		{//cout<<"rr ";
			if(s[i+1]>s[i] && s[i]<s[i-1] && s[i]!='a')
			{
				cout<<"no\n";
				f=1;
				break;
			}
			else if(s[i+1]<s[i] && s[i]>s[i-1] )
			{
				cout<<"no\n";
				f=1;
				break;
			}
			else
			m1[s[i]]++;
			maxx=max(maxx,s[i]-'a');
		}
		else
		{
				m1[s[i]]++;
			maxx=max(maxx,s[i]-'a');
		}
	
	}
	if(f==1)
	{
		
		 continue;
	}
	for(int i=0;i<maxx;i++)
	{
		if(m1['a'+i]==0)
		  {
		  	cout<<"no\n";
		  	f=1;
		  	break;
		  }
	}
		if(f==1)
	{
		
		 continue;
	}
	for(int i=0;i<26;i++)
	{
		if(m1['a'+i]>1)
		 {
		 	cout<<"no\n";
		 	f=1;
		 	break;
		 }
	}
		if(f==1)
	{
		
		 continue;
	}
	
	//cout<<"fff"<<m1['a'+0];
	if(f==0)
	cout<<"yes\n";
}
	 return 0;
}
