Vasya has recently learned to type and log on to the Internet. He immediately entered a chat room and decided to say hello to everybody. Vasya typed the word *s*. It is considered that Vasya managed to say hello if several letters can be deleted from the typed word so that it resulted in the word "hello". For example, if Vasya types the word "ahhellllloou", it will be considered that he said hello, and if he types "hlelo", it will be considered that Vasya got misunderstood and he didn't manage to say hello. Determine whether Vasya managed to say hello by the given word *s*.
The first and only line contains the word *s*, which Vasya typed. This word consisits of small Latin letters, its length is no less that 1 and no more than 100 letters.
'''
delete all the vowels
insert . before each consonant
replace uppercase consonants with lowercase

NOTE:Vowels are letters "A", "O", "Y", "E", "U", "I",
and the rest are consonants

python codeforces.py
'''
'''
vowels=["a", "o", "y", "e", "u", "i"]

string = (input("")).lower()

ans=""
for letter in string:
    if letter not in vowels:
        ans+=("."+letter)

print(ans)
'''
'''
m,n = map(int, input("").split(' '))

if m%2!=0 or n%2!=0:
    print((m*int(n/2))+int(m/2))
else:
    print(m*int(n/2))
'''
'''
if m%2==0:
    print(int(m/2)*n)
elif n%2==0:
    print(int(n/2)*m)
else:
    print((int(m/2)*n)+int(n/2))
'''
'''
n = int(input(""))
x=0
code=[]

for i in range(n):
    code.append(input(""))

for line in code:
    if "++" in line:
        x+=1
    else:
        x-=1

print(x)
'''
'''
string=[]
for i in range(2):
    string.append(input("").lower())

if string[0]<string[1]:
    print(-1)

elif string[0]==string[1]:
    print(0)

else:
    print(1)
'''
'''
positions=input("")

if len(positions)<7:
    print("NO")

else:
    counter=[0,0]
    flag=0
    for i in positions:
        if i=='0':
            if counter[1]!=0:
                counter[1]=0
                counter[0]+=1
            else:
                counter[0]+=1
        elif i=='1':
            if counter[0]!=0:
                counter[0]=0
                counter[1]+=1
            else:
                counter[1]+=1
        #print(counter)

        if (counter[0]>=7 or counter[1]>=7) and flag==0:
            print("YES")
            flag=1

    if flag==0:
        print("NO")
'''
'''
sum_input=input("")
numbers=[]

for i in sum_input:
    if i != '+':
        numbers.append(int(i))

numbers=sorted(numbers)
ans=''
for j in numbers:
    ans=ans+(str(j)+'+')

ans=ans[:-1]

print(ans)
'''
'''
matrix=[]

for i in range(5):
    temp=input("").replace(' ','')
    matrix.append(list(temp))

#print(matrix)

for i in range(5):
    for j in range(5):
        if matrix[i][j]=='1':
            x=j
            y=i

print(abs(2-x)+abs(2-y))
'''
'''
word=input("")

print(word[0].upper()+word[1:])
'''
'''
R for red
G for green
B for blue

Count the minimum number of stones
to take from the table
so that any two neighboring stones
had different colors.
'''
'''
n=int(input(""))
s=input("")

print(sum([1 for i in range(n-1) if s[i]==s[i+1]]))
'''
'''
username = input("")
#odd->male->ignore him
#even->female->chat with her

letters=[]
counter=0

for char in username:
    if char not in letters:
        counter+=1
    letters.append(char)

if counter%2!=0:
    print("IGNORE HIM!")
else:
    print("CHAT WITH HER!")
'''

'''
a->exits
b->enters

n->number of tram's stops
'''
'''
n=int(input(""))

a=[]
b=[]

for j in range(n):
    x,y=map(int,input("").split())
    a.append(x)
    b.append(y)

current=0
m=[]
for i in range(n):
    current=current-a[i]+b[i]
    m.append(current)

print(max(m))
'''

msg=input("")

def char_finder(s,char):
    counter=0
    for i in s:
        if i==char:
            counter+=1
    return counter

def index_finder(s,char):
    if char_finder(s,char)<=1:
        for i in range(len(s)):
            if s[i]==char:
                return i
    else:
        index=[]
        for i in range(len(s)):
            if s[i]==char:
                index.append(i)
        return index

def my_min(x):
    if isinstance(x,list):
        return min(x)
    else:
        return x

h=my_min(index_finder(msg,'h'))
e=my_min(index_finder(msg[h+1:],'e'))+h-1
l=my_min(index_finder(msg[e+1:],'l'))+e-1
ll=my_min(index_finder(msg[l+1:],'l'))+l-1
o=my_min(index_finder(msg[ll+1:],'o'))+ll-1

#print([h,e,l,ll,o])

if [h,e,l,ll,o]==sorted([h,e,l,ll,o]):
    print("YES")

else:
    print("NO")

















