#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
struct List{
int data;
int next;
};
int main()
{
int first,n,k;
cin>>first>>n>>k;
List myL[100000];
vector<vector<int> > v(3);
for(int i=0;i<n;i++){
int a;
cin>>a;
cin>>myL[a].data>>myL[a].next;
}
int adr=first;
while(adr!=-1){
int d=myL[adr].data;
if(d<0){
v[0].push_back(adr);
}else if(d>k){
v[2].push_back(adr);
}else{
v[1].push_back(adr);
}
adr=myL[adr].next;
}
for(int i=0,f=0;i<3;i++){
for(int j=0;j<v[i].size();j++){
if(f==0){
printf("%05d %d ",v[i][j],myL[v[i][j]].data);
f++;
}else{
printf("%05d\n%05d %d ",v[i][j],v[i][j],myL[v[i][j]].data);
}
}
}
printf("-1");
return 0;
}