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 Java8 (OpenJDK 1.8.0) (judge verdict: Runtime Error)

import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		Integer[] line = parseIntArray(sc.nextLine());
		int aSpeceis = line[0];
		int bSpeceis = line[1];
		int m = line[2];
		Integer[] aPrices = parseIntArray(sc.nextLine());
		Integer[] bPrices = parseIntArray(sc.nextLine());
		
		Integer[][] discount = new Integer[m][3];
		for(int i=0;i<m;i++) {
			String d = sc.nextLine();
			discount[i] = parseIntArray(d);
		}
		sc.close();
		
		List<Integer> payment = new ArrayList<Integer>();
		for(int i=0;i<m;i++) {
			payment.add(aPrices[discount[i][0]-1]+bPrices[discount[i][1]-1]-discount[i][2]);
		}
		
		Collections.sort(payment);
		System.out.print(payment.get(0));
	}
	
	private static Integer[] parseIntArray(String line) {
		String[] arr = line.split(" ");
		Integer [] intArr = new Integer[arr.length];
		for(int i=0;i<arr.length;i++) {
			intArr[i] = Integer.parseInt(arr[i]);
		}
		return intArr;
	}
}