#include <bits/stdc++.h>
#include <set>
#include <numeric>
#define rep(i,n) for (int i=0; i < (n); ++i)
#define all(a) a.begin(), a.end()
using ll = long long;
using namespace std;
 
// ll gcd(ll a, ll b) { return b ? gcd(b, a % b) : a; }


// const double PI = acos(-1);
// int gcd(int x, int y) { return (x % y)? gcd(y, x % y): y; }
// int a[12][12];

void solve() {
  string s; cin >> s;
  string hitachi = "";
  for (int i= 1; i <=5; i++) {
    hitachi += "hi";
    if (hitachi == s) {
      cout << "Yes" << endl;
      return;
    }
  }
  cout << "No" << endl;

}


int main() {
  solve();
  return 0;
}

#include <bits/stdc++.h>
#define rep(i,n) for (int i = 0; i < (n); ++i)
using namespace std;
using ll = long long;
using P = pair<int,int>;

int main(){
  string s;
  cin >> s;
  bool flg = true;
  rep(i, s.size()){
    if(i % 2 == 0 && s[i] == 'h' && s[i+1] == 'i') continue;
    else if(i % 2 == 1) continue;
    else{
      flg = false;
      cout << "No" << endl;
      break;
    }
  }
  if(flg) cout << "Yes" << endl;
  return 0;
}
