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.
import operator
from collections import Counter, deque, defaultdict
from itertools import permutations, combinations
import math
from functools import lru_cache
from random import randint
from sys import stdin
from typing import Callable, Dict, List
import bisect


M = 1000000007
INF = math.inf
NEG_INF = -INF

def getPairsMerge(arr, l, r, mid, p):
     
    b = [0 for _ in range(l + r + 1)]
    i=l
    k=l
    j=mid+1;
    while(i<=mid and j<=r):
        if(arr[i]>arr[j]):
            b[k]=arr[j];
            p.append([arr[i],arr[j]]);
            p.append([arr[j],arr[i]]);
            p.append([arr[j],arr[j]]);
            k+= 1;
            j+= 1;
         
        else:
            p.append([arr[i],arr[j]]);
            p.append([arr[j],arr[i]]);
            p.append([arr[i],arr[i]]);
            b[k]=arr[i];
            i+= 1;
            k+= 1;
         
     
 
    while(i<=mid):
        b[k]=arr[i];
        p.append([arr[i],arr[i]]);
        i+= 1;
        k+= 1;
     
    while(j<=r):
        b[k]=arr[j];
        p.append([arr[j],arr[j]]);
        j+= 1;
        k+= 1;
     
    for x in range(l, r + 1):
        arr[x]=b[x];
    
def getAllPairs(arr, l, r, p):
 
    if(l<r):
        mid=int((l+r)/2);
        getAllPairs(arr,l,mid,p);
        getAllPairs(arr,mid+1,r,p);
        getPairsMerge(arr,l,r,mid,p);

class Solution:

    def __init__(self) -> None:
        self.prev = 0

    def readint(self):
        return int(stdin.readline())


    def readarray(self, typ):
        return list(map(typ, stdin.readline().split()))


    def readmatrix(self, n):
        M = []

        for _ in range(n):

            row = self.readarray(int)
            assert len(row) == n
            M.append(row)
        
        return M


    def mult(self, M, v):
        n = len(M)
        return [sum(M[i][j] * v[j] for j in range(n)) for i in range(n)]


    def freivalds(self, A, B, C):

        n = len(A)

        x = [randint(0, 1000000) for j in range(n)]
        return self.mult(A, self.mult(B, x) == self.mult(C, x))    


    def findRes(self, arr, i):
        res = 0
        for j in range(i, len(arr)):
            res += arr[j]
        return res\


    def insertSort2D(self, arr):

        swaps = 0
        for i in range(1, len(arr)):

            key = arr[i][0]

            keyRow = arr[i]

            j = i - 1

            while j >= 0 and arr[j][0] > key:
                arr[j+1] = arr[j]
                j = j - 1
                swaps += 1
            
            arr[j+1] = keyRow

        return swaps


    def isPrime(self, n: int) -> bool:

        if n > 1:
            for i in range(2, int(math.sqrt(n)) + 1):
                if n % i == 0:
                    return False
            return True    
        return False
    

    def inRange(self, x: int, n: int) -> bool:

        return 0 <= x < n
    
    def solve(self, case=0):
        
        s = input()

        res = ""


        counter = {'h':1, 'e':1, 'l':2, 'o':1}

        for i in range(len(s)-1, -1, -1):
            if s[i] in counter:
                if counter[s[i]] > 0:
                    res = s[i] + res
                    counter[s[i]] -= 1
        
        print('YES' if res == 'hello' else 'NO')



                
                
        

            

def main():
    # T = int(input())

    sol = Solution()
    sol.solve()
    return
    i = 1
    while T > 0:
        sol.solve(i)
        T -= 1
        i += 1



if __name__ == "__main__":
    main()
