#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; }