#include<bits/stdc++.h>
using namespace std;
const int N=100010;
int h,e[N],ne[N];
vector<int> q;
int main()
{
int head,n,k;
cin>>head>>n>>k;
for(int i=0;i<n;i++)
{
int address,data,next;
cin>>address>>data>>next;
e[address]=data;
ne[address]=next;
}
for(int i=head;i!=-1;i=ne[i])
{
q.push_back(i);
}
for(int i=0;i<q.size()-k+1;i=i+k) reverse(q.begin()+i,q.begin()+i+k);
for(int i=0;i<q.size()-1;i++)
{
printf("%05d %d %05d\n",q[i],e[q[i]],q[i+1]);
}
printf("%05d %d -1",q[q.size()-1],e[q[q.size()-1]]);
}