import java.util.*;
import java.io.*;
class node1{
int address;
int data;
int next;
node1(int address,int data,int next){
this.address=address;
this.data=data;
this.next=next;
}
}
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
int firstaddress=sc.nextInt();
int n=sc.nextInt();
node1[] nodes=new node1[100000];
List<node1> lst=new ArrayList<>();
for(int i=0;i<n;i++){
int address=sc.nextInt();
int data=sc.nextInt();
int next=sc.nextInt();
nodes[address]=new node1(address,data,next);
}
while(firstaddress!=-1){
lst.add(nodes[firstaddress]);
firstaddress=nodes[firstaddress].next;
}
List<node1> lst2=new ArrayList<>();//第一次
List<node1> lst3=new ArrayList<>();
HashSet<Integer> set1=new HashSet<>();
List<node1> lst4=new ArrayList<>();
for(int i=0;i<lst.size();i++){
int data=Math.abs(lst.get(i).data);
//System.out.print(data);
if(set1.contains(data)){
lst3.add(lst.get(i));
}else if(!set1.contains(lst.get(i))){
lst2.add(lst.get(i));
set1.add(data);
}
}
for(int i=0;i<lst2.size()-1;i++){
//System.out.printf("%05d %d %05d",lst2.get(i).address+" "+lst2.get(i).data+" "+lst2.get(i+1).address);
System.out.printf("%05d %d %05d\n", lst2.get(i).address, lst2.get(i).data, lst2.get(i + 1).address);
}
//System.out.print(" ");
System.out.printf("%05d %d %d\n", lst2.get(lst2.size()-1).address, lst2.get(lst2.size()-1).data, -1);
for(int i=0;i<lst3.size()-1;i++){
System.out.printf("%05d %d %05d\n",lst3.get(i).address,lst3.get(i).data,lst3.get(i+1).address);
}
//System.out.printf("%05d %d %05d",lst2.get(lst3.size()-1).address+" "+lst3.get(lst3.size()-1).data+" -1");
System.out.printf("%05d %d %d\n", lst3.get(lst3.size()-1).address, lst3.get(lst3.size()-1).data, -1);
}
}
/*00100 5
99999 -7 87654
23854 -15 00000
87654 15 -1
00000 -15 99999
00100 21 23854
*/