#include<bits/stdc++.h>
using namespace std;
const int MAXN=100010;
struct Node{
int num;
int address;
int next;
}node[MAXN];
int main()
{
freopen("in.txt","r",stdin);
int start,n,k;cin>>start>>n>>k;
vector<Node> ppp;ppp.resize(n);
for(int i=0;i<n;i++){
int add;
cin>>add;node[add].address=add;
cin>>node[add].num>>node[add].next;
}
vector<Node> temp1,temp2,temp3;
for(int i=start;i!=-1;i=node[i].next){
if(node[i].num<0){
temp1.push_back(node[i]);
}
if(node[i].num<=k&&node[i].num>=0){
temp2.push_back(node[i]);
}
if(node[i].num>k){
temp3.push_back(node[i]);
}
}
for(int i=0;i<temp2.size();i++){
temp1.push_back(temp2[i]);
}
for(int i=0;i<temp3.size();i++){
temp1.push_back(temp3[i]);
}
for(int i=0;i<temp1.size()-1;i++){
printf("%05d %d %05d\n",temp1[i].address,temp1[i].num,temp1[i+1].address);
}
printf("%05d %d -1\n",temp1[temp1.size()-1].address,temp1[temp1.size()-1].num);
return 0;
}