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<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<algorithm>
#include<queue>
#include<cmath>
#include<map>
#include<string>
#include<iomanip>
#include<vector>
using namespace std;
typedef pair<int, int>PII;
typedef long long ll;

int fx[4][2] = { {0,1},{0,-1},{1,0},{-1,0} };
//int fx[8][2] = { {-2,1},{-1,2},{1,2},{2,1},{2,-1},{1,-2},{-1,-2},{-2,-1} };//{ {2, 1}, { 2,-1 }, { 1,2 }, { 1,-2 }, { -2,-1 }, { -2,1 }, { -1,2 }, { -1,-2 } }; //{ { 2, 1},	{ 1, 2},{-1, 2},{-2, 1},{-2,-1},{-1,-2},{ 1,-2},{ 2,-1} };//{ {2,1},{2,-1},{1,2},{1,-2},{-2,-1},{-2,1},{-1,2},{-1,-2} };
const int mod = 199999;
const int M = 200500;
const int inf = 1e9 + 7;

int mapp[27];
int main()
{
	int t;
	cin >> t;
	while (t--)
	{
		int fff = 0;
		memset(mapp, 0, sizeof mapp);
		string s,f="";
		int flag=0;
		cin >> s;
		for (int i = 0; i < s.size(); i++)
		{
			mapp[s[i] - 'a']++;
			if (mapp[s[i] - 'a'] > 1)fff = 1;
		}
		if (fff)
		{
			cout << "NO\n";
			continue;
		}
		for (int i = 0, j = s.size()-1; i < j;)
		{
			if (s[i] > s[j])f = f + s[i++];
			else if(s[i]<s[j]) f = f + s[j--];
			flag = i;
		}
		f = f + s[flag];
		//cout << s << endl;
		//cout << f << endl;
		if (s.size() != f.size())cout << "NO\n";
		else
		{
			int ff = 0;
			for (int i = 0; i < f.size()-1; i++)
			{
				if (f[i] - f[i + 1] > 1)ff = 1;
			}
			if (ff||f[f.size()-1]!='a')cout << "NO\n";
			else cout << "YES\n";
		}


	}

}

