A string is called diverse if it contains consecutive (adjacent) letters of the Latin alphabet and each letter occurs exactly once. For example, the following strings are diverse: "fced", "xyz", "r" and "dabcef". The following string are not diverse: "az", "aa", "bad" and "babc". Note that the letters 'a' and 'z' are not adjacent.

Formally, consider positions of all letters in the string in the alphabet. These positions should form contiguous segment, i.e. they should come one by one without any gaps. And all letters in the string should be distinct (duplicates are not allowed).

You are given a sequence of strings. For each string, if it is diverse, print "Yes". Otherwise, print "No".


-----Input-----

The first line contains integer $n$ ($1 \le n \le 100$), denoting the number of strings to process. The following $n$ lines contains strings, one string per line. Each string contains only lowercase Latin letters, its length is between $1$ and $100$, inclusive.


-----Output-----

Print $n$ lines, one line per a string in the input. The line should contain "Yes" if the corresponding string is diverse and "No" if the corresponding string is not diverse. You can print each letter in any case (upper or lower). For example, "YeS", "no" and "yES" are all acceptable.


-----Example-----
Input
8
fced
xyz
r
dabcef
az
aa
bad
babc

Output
Yes
Yes
Yes
Yes
No
No
No
No

Difficulty: introductory

Starter code:

Solutions:
n = int(input())
for i in range(n):
    s = input()
    if len(s) == len(set(s)) and abs(ord(min(s)) - ord(max(s))) == len(s) - 1:
        print('Yes')
    else:
        print('No')

for i in range(int(input())):
	s = list(input())
	s.sort()
	ans = "Yes"
	for i in range(1,len(s)):
		if(ord(s[i]) != ord(s[i-1])+1):
			ans = "No"
			break
	print(ans)		

n=int(input())
for i in range(n):
    s = ''.join(sorted(input()))
    ans = True
    for i in range(1, len(s)):
        if ord(s[i]) - ord(s[i - 1]) != 1: ans = False
    if ans: print('Yes')
    else: print('No')

#Bhargey Mehta (Sophomore)
#DA-IICT, Gandhinagar
import sys, math, queue
sys.setrecursionlimit(1000000)
#sys.stdin = open("input.txt", "r")

for i in range(int(input())):
    x = []
    s = input()
    for c in s:
        x.append(ord(c))
    x.sort()
    ans = "Yes"
    for i in range(1, len(x)):
        if x[i] != x[i-1]+1:
            ans = "No"
            break
    print(ans)

GI = lambda: int(input()); GIS = lambda: list(map(int, input().split())); LGIS = lambda: list(GIS())

def main():
    for t in range(GI()):
        s = sorted(input())
        for i in range(len(s) - 1):
            if ord(s[i+1]) - ord(s[i]) != 1:
                print("No")
                break
        else:
            print("Yes")

main()


mod = 10 ** 9 + 7
ii = lambda : int(input())
si = lambda : input()
dgl = lambda : list(map(int, input()))
f = lambda : map(int, input().split())
il = lambda : list(map(int, input().split()))
ls = lambda : list(input())
n=ii()
for i in range(n):
   s=sorted(list(si()))
   x=len(s)
   flg=0
   for j in range(1,x):
      if ord(s[j])-ord(s[j-1])!=1:
         flg=1
   print('YNeos'[flg==1::2])

'''input
8
fced
xyz
r
dabcef
az
aa
bad
babc
'''
import sys
from collections import defaultdict as dd
from itertools import  permutations as pp
from itertools import combinations as cc
from collections import Counter as ccd
from random import randint as rd
from bisect import bisect_left as bl
import heapq
mod=10**9+7

def ri(flag=0):
	if flag==0:
		return [int(i) for i in sys.stdin.readline().split()]
	else:
		return int(sys.stdin.readline())

def ff(a):
	return ord(a)-ord("a")


for _ in range(ri(1)):
	a=list(input())
	a.sort()
	f=1
	b=list(set(a))
	b.sort()
	#print(b)
	if len(a)!=len(b):
		f=0
	for i in range(1,len(b)):
		if ff(b[i])-ff(b[i-1])!=1:
			f=0
	if f:
		print("Yes")
	else:
		print("No")


alf = "abcdefghijklmnopqrstuvwxyz"
n = int(input())
for i in range(n):
    string = "".join(sorted(list(input())))
    if string in alf:
        print("Yes")
    else:
        print("No")


def parse_arr():
    return list(map(int, input().split(' ')))

n = int(input())

for _ in range(n):
    line = input().strip()

    line = sorted(line)

    start = line[0]
    done = False
    for a in line:
        if a == start:
            start = chr(ord(start) + 1)
        
        else:
            print('No')
            done = True
            break

    if not done:
        print('Yes')

import math
def na():
	n = int(input())
	b = [int(x) for x in input().split()]
	return n,b


def nab():
	n = int(input())
	b = [int(x) for x in input().split()]
	c = [int(x) for x in input().split()]
	return n,b,c


def dv():
	n, m = list(map(int, input().split()))
	return n,m


def dva():
	n, m = list(map(int, input().split()))
	b = [int(x) for x in input().split()]
	return n,m,b


def nm():
	n = int(input())
	b = [int(x) for x in input().split()]
	m = int(input())
	c = [int(x) for x in input().split()]
	return n,b,m,c


def dvs():
	n = int(input())
	m = int(input())
	return n, m


n = int(input())
for i in range(n):
	s = input()
	if len(s) == 1:
		print('Yes')
		continue
	if len(set(s)) < len(s):
		print('No')
		continue
	s = sorted(set(s))
	f = True
	for i in range(len(s) - 1):
		d = ord(s[i])
		d1 = ord(s[i + 1])
		if d1 - d != 1:
			print('No')
			f = False
			break
	if f:
		print('Yes')


n = int(input())

for i in range(n):
    s = input()
    s1 = ''.join(sorted(s))
    z = set()
    fl = 0

    for j in range(len(s1) - 1):
        if abs(ord(s1[j]) - ord(s1[j + 1])) != 1:
            print('No')
            fl = 1
            break

    if fl == 0:
        print('Yes')

n=int(input())
for ti in range(n):
	s=input()
	f=[0]*(26)
	for i in s:
		f[ord(i)-ord('a')]+=1
	flag=True
	for i in range(26):
		if f[i]>1:
			flag=False
			break
	if flag:
		s=sorted(s)
		for i in range(len(s)-1):
			if ord(s[i+1])-ord(s[i])!=1:
				flag=False
				break
		if not flag:
			print("No")
		else:
			print("Yes")
	else:
		print("No")

n = int(input())
for i in range(n):
    s = input()

    S = set(s)
    A = sorted(list(S))
    if len(S) == len(s) and ord(A[-1]) - ord(A[0]) == len(s) - 1:
        print('Yes')
    else:
        print('No')


q=int(input())
for i in range(q):
    s=input()
    L=list(s)
    L.sort()

    for j in range(len(L)):
        if ord(L[j])==ord(L[0])+j:
            continue
        else:
            print("No")
            break

    else:
        print("Yes")


n = int(input())
for i in range(n):
    s = list([ord(x) for x in list(input())])
    if sorted(s) == list(range(min(s), max(s) + 1)):
        print('Yes')
    else:
        print('No')

                


#38728191
from collections import defaultdict as DD
from bisect import bisect_left as BL
from bisect import bisect_right as BR
from itertools import combinations as IC
from itertools import permutations as IP
from random import randint as RI
import sys
MOD=pow(10,9)+7

def IN(f=0):
    if f==0:
        return ( [int(i) for i in sys.stdin.readline().split()] )
    else:
        return ( int(sys.stdin.readline()) )
nn=IN(1)
for _ in range(nn):
    s=input()
    s=list(s)
    s.sort()
    n=len(s)
    if len(set(s))!=n:
        print("No")
    else:
        f=0
        for i in range(1,n):
            if abs(ord(s[i])-ord(s[i-1]))!=1:
                f=1
        if f==1:
            print("No")
        else:
            print("Yes")
            


N = int(input())

def diverse(t):
    t = sorted(t)
    for i in range(len(t)):
        if ord(t[i]) - ord(t[0]) != i:
            return 0
    return 1

for _ in range(N):
    if diverse(input()):
        print("Yes")
    else:
        print("No")