#include using namespace std; vector> G; bool vis[200000]; string dfs(int const u) { vis[u] = true; string ret; for (int const v : G[u]) if (not vis[v]) { string sub{dfs(v)}; for (int i=0; i < 3; ++i) sub.pop_back(); ret += "(" + sub + "yl)"; } ret += "methane"; fprintf(stderr, "dfs(%d) -> %s\n", u, ret.c_str()); return ret; } int main() { int N; cin >> N; G.resize(N); for (int u=0; u < N; ++u) for (int i=0; i < 4; ++i) { string C; cin >> C; if (C != "H") { int const v{stoi(C) - 1}; G[u].push_back(v); } } cout << dfs(0) << endl; }