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.

Input

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.

Output

If Vasya managed to say hello, print "YES", otherwise print "NO".

Examples

Input

ahhellllloou


Output

YES


Input

hlelo


Output

NO
s = str(input())
##iH = s.find('h')
##iE = s.find('e', iH+1, len(s)) #mencari huruf E setelah index huruf H sampai akhir
##il = s.find('l', iE+1, len(s)) #setelah index E
##iL = s.find('l', il+1, len(s)) #setelah index L yang pertama
##iO = s.find('o', iL+1, len(s)) #setelah index L yang kedua
##
##if iH < iE and iE < il and il < iL and iL < iO: #menandakan masing-masing index terletak setelah masing-masing huruf
##    print("YES")
##else:
##    print("NO")
#cara diatas berhasil, tetapi menurut yang saya baca, str.find memiliki Big-O O(m*n) jadi saya menggunakan cara dibawah
#cara dibawah memiliki kompleksitas waktu O(n)
kata = "hello" #inisialisasi kata yg dicari
index = 0 #index untuk kata
for i in s:
    if i == kata[index]:
        index += 1 #setiap ada yang sama index ditambah menandakan huruf yg dicek sudah berbeda
    if index == 5: #jika sudah 5 berarti semua kata "hello" ada di dalam string
        break

if index == 5:
    print("YES")
else:
    print("NO")

#cara kedua seharusnya lebih cepat secara teori, tetapi menurut judge kedua cara ini sama waktunya