#include<iostream> #include<vector> usingnamespacestd; constint Max = 100010; typedefstructNode { int add, data, next; } List; intmain(){ int fir, n; scanf("%d %d", &fir, &n); List list[Max]; vector<List> ans; int f, d, ne; for (int i = 0; i < n; i++) { scanf("%d %d %d", &f, &d, &ne); list[f].add = f; list[f].data = d; list[f].next = ne; } for (int i = fir; i != -1; i = list[i].next) { ans.push_back(list[i]); } n = ans.size(); int m = 0, x = n - 1; int h = x; for (int i = 1; i <= n; i++) { printf("%05d %d ", ans[h].add, ans[h].data); if (i % 2 == 0) h = --x; else h = m ++; if (i == n) printf("-1"); else printf("%05d\n", ans[h].add); } return0; }