#include<iostream> #include<vector> #include<string> #include<array> #include<algorithm> #include<list> #include<cmath> #include<iomanip> #include<queue> #include<functional> #include<climits> #include<iterator> #include<unordered_set> #include<unordered_map> #include<map> #include<set> #include<typeinfo> using namespace std; const double pi=4*atan(1.0); constexpr long long mod=static_cast<long long>(1e9+7); using cWeightEdges=vector<vector<pair<int,int>>>; using cEdges=vector<vector<int>>; int main() { string str; cin>>str; long long num=0; int index=0; while(index<str.size()){ if(str.substr(index,4)=="hamu"){ num+=1; index+=4; } else{ index+=3; } if(index<str.size())num<<=1; } num*=2; if(num==0){ cout<<"ham"<<endl; } else{ long long tmp=num; int cnt=0; while(tmp>0){ ++cnt; tmp>>=1; } for(int i=cnt-1;i>=0;--i){ if(num&(1<<i))cout<<"hamu"; else cout<<"ham"; } cout<<endl; } //system("pause"); return 0; }