use proconio::input; fn main() { input! { N: usize, edges: [[String; 4]; N], } let mut graph = vec![vec![]; N]; for i in 0 .. N { for x in &edges[i] { if x != "H" { graph[i].push(x.parse::().unwrap() - 1); } } } fn dfs(graph: &[Vec], u: usize, p: usize, ans: &mut String) { for &v in &graph[u] { if v != p { ans.push('('); dfs(graph, v, u, ans); ans.push_str("yl)"); } } ans.push_str("meth"); } let mut ans = String::new(); dfs(&graph, 0, 0, &mut ans); ans.push_str("ane"); println!("{}", ans); }