Problem:
Score : 100 points

Problem Statement

A Hitachi string is a concatenation of one or more copies of the string hi.

For example, hi and hihi are Hitachi strings, while ha and hii are not.

Given a string S, determine whether S is a Hitachi string.

Constraints

The length of S is between 1 and 10 (inclusive).

S is a string consisting of lowercase English letters.

Input

Input is given from Standard Input in the following format:

S

Output

If S is a Hitachi string, print Yes; otherwise, print No.

Sample Input 1

hihi

Sample Output 1

Yes

hihi is the concatenation of two copies of hi, so it is a Hitachi string.

Sample Input 2

hi

Sample Output 2

Yes

Sample Input 3

ha

Sample Output 3

No

Solution in Kotlin (1.0.0) (judge verdict: Runtime Error)

fun main(ar: Array<String>?) {
    val i = System.`in`!!.reader(Charsets.US_ASCII).readLines()

    val il = i.flatMap { it.split(" ") }.let { IntArray(it.size) { id -> it[id].toInt() } }
    val m = il[2]
    val b = il[1]
    val a = il[0]
    var min = 100000
    for (xi in (0 until m).reversed()) {
        var xxa = 3 + a + b + xi * 3 + 2
        val p1 = -il[xxa] + il[3 + a + il[--xxa] - 1] + il[3 + il[--xxa] - 1]
        if (p1 < min) {
            min = p1
        }
    }
    var ma = min
    for (aai in (3 until 3 + a).reversed()) {
        val ai = il[aai]
        if (ai < ma) {
            ma = ai
        }
    }
    if (ma < min) {
        var mb = min
        for (bbi in (3 + a until 3 + a + b).reversed()) {
            val bi = il[bbi]
            if (bi < mb) {
                mb = bi
            }
        }
        val mr = ma + mb
        if (mr < min) {
            print(mr)
        }
    }
    print(min)
}