#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<fstream>
#include<utility>
#include<vector>
#include<string>
#include<algorithm>
#include<set>
#include<map>
#include<cmath>
#include<sstream>

using namespace std;

#define SET(a,b) __typeof(b) a=(b)
#define FOR(i,a,b) for (int _n(b), i(a); i < _n; i++)
#define FORD(i,a,b) for(int i=(a),_b=(b);i>=_b;--i)
#define REP(i,n) FOR(i,0,n)
#define pb push_back
#define all(v) (v).begin(),(v).end()
#define sz(a) ((int)(a.size()))
#define tr(a, it) for(decltype(a.begin()) it = a.begin(); it != a.end(); it++)

typedef vector<int> VI;
typedef vector<VI> VII;
typedef vector<string> VS;
typedef vector<VS> VSS;
template<class T> T abs(T x){return x>0 ? x:(-x);}
template<class T> T sqr(T x){return x*x;}

int main()
{
	int q;
	string tem = "hackerrank";
    cin>>q;
	REP(i, q)
	{
		string query;
		cin>>query;
		int loc = -1;
		FOR(j, 0, tem.size())
		{
			if( loc + 1 > query.size() || query.find(tem[j], loc + 1) == string::npos)
			{
				cout<<"NO"<<endl;
				query.clear();
				break;
			}
			loc = query.find(tem[j], loc + 1);
		}
		if(!query.empty()) cout<<"YES"<<endl;
	}
	return 0;
}