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
# WHERE:  https://codeforces.com/problemset/page/6?order=BY_RATING_ASC
import math

# Theatre Square
# https://codeforces.com/problemset/problem/1/A
# Input
# The input contains three positive integer numbers in the first line: n,  m and a (1 ≤  n, m, a ≤ 109).
# Output
# Write the needed number of flagstones.
# listInputs = list(map(int, input().split()))
# m, n, a = listInputs[0], listInputs[1], listInputs[2]
# print(math.ceil(m/a)*math.ceil(n/a))
# ---------------------------------------------------------------------------------------------------------------------

# String Task
# https://codeforces.com/problemset/problem/118/A
# Input
# The first line represents input string of Petya's program. This string only consists of uppercase and lowercase Latin letters and its length is from 1 to 100, inclusive.
# Output
# Print the resulting string. It is guaranteed that this string is not empty.
# strInput = input().lower()
# vocals = ["a", "o", "i", "e", "u", "y"]
# newStr = ""


# def isVocal(letter, _vocals):
#     for vocal in _vocals:
#         if vocal == letter:
#             return True
#     return False


# for letter in strInput:
#     if not isVocal(letter, vocals):
#         newStr += "." + letter

# print(newStr)
# ---------------------------------------------------------------------------------------------------------------------

# Young Physicist
# https://codeforces.com/problemset/problem/69/A
# Input
# The first line contains a positive integer n (1 ≤ n ≤ 100), then follow n lines containing three integers each: the xi coordinate, the yi coordinate and the zi coordinate of the force vector, applied to the body ( - 100 ≤ xi, yi, zi ≤ 100).
# Output
# Print the word "YES" if the body is in equilibrium, or the word "NO" if it is not.
# times = int(input())
# x = 0
# y = 0
# z = 0

# for time in range(times):
#     coordinates = list(map(int, input().split()))
#     x += coordinates[0]
#     y += coordinates[1]
#     z += coordinates[2]

# if x == 0 and y == 0 and z == 0:
#     print("YES")
# else:
#     print("NO")
# ---------------------------------------------------------------------------------------------------------------------


# Chat room
# https://codeforces.com/problemset/problem/58/A
# 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".
strInput = input()
isValid = False
wordToValidate = "hello"
wordLength = len(wordToValidate)
currentIdx = 0

for letter in strInput:
    if letter == wordToValidate[currentIdx]:
        currentIdx += 1
    if currentIdx == wordLength:
        isValid = True
        break
if isValid:
    print("YES")
else:
    print("NO")
# ---------------------------------------------------------------------------------------------------------------------
