/*
 * grade.java
 *
 * Created on July 18, 2004, 5:35 PM
 */

import java.io.*;
import java.util.StringTokenizer;

/**
 *
 * @author  Numinor
 */
public class grade
{

    /** Creates a new instance of grade */
    public grade() throws Exception
    {
        BufferedReader input = new BufferedReader(new FileReader("grade.in"));
        
        StudentList students = new StudentList();
        
        StringTokenizer tok;
        String in_line;
       
        int l, m, n, score;
        String first_name, last_name, name;
        
        in_line = input.readLine();
        tok = new StringTokenizer(in_line);
        l = Integer.parseInt(tok.nextToken());
        m = Integer.parseInt(tok.nextToken());
        n = Integer.parseInt(tok.nextToken());
        
        for (int i = 0; i < l; i++)
        {
            in_line = input.readLine();
            tok = new StringTokenizer(in_line);
            first_name = tok.nextToken();
            last_name = tok.nextToken();
            score = Integer.parseInt(tok.nextToken());
            name = last_name + ", " + first_name;
            students.addGrade(name, score);
        }
        
        System.out.print(students.toString());
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws Exception
    {
        new grade();
    }

public class StudentList
{
    private StudentEntry head;
    
    /** Creates a new instance of StudentList */
    public StudentList()
    {
        head = null;
    }
    
    public void addGrade(String name, int grade)
    {
        StudentEntry stud = find(name);
        if (stud != null)
        {
            // student already exists
            stud.addGrade(grade);
        }
        else
        {
            insertStudent(name, grade);
        }
    }
    
    public StudentEntry find(String name)
    {
        StudentEntry cur = head;
        
        while (cur != null && name.compareTo(cur.myName()) != 0)
        {
            cur = cur.next;
        }
        
        return cur;
    }
    
    public void insertStudent(String name, int grade)
    {
        if (head == null)
        {
            head = new StudentEntry(name, grade);
        }
        else
        {
            if (name.compareTo(head.myName()) < 0)
            {
                StudentEntry temp = new StudentEntry(name, grade);
                temp.next = head;
                head = temp;
            }
            else
            {
                StudentEntry cur = head;

                while (cur.next != null && name.compareTo(cur.next.myName()) > 0)
                {
                    cur = cur.next;
                }

                StudentEntry temp = new StudentEntry(name, grade);
                temp.next = cur.next;
                cur.next = temp;
            }
        }
    }
    
    public String toString()
    {
        String out = "";
        
        StudentEntry cur = head;
        
        while (cur != null)
        {
            out += cur.toString() + "\n";
            cur = cur.next;
        }
        
        return out;
    }
}

public class StudentEntry
{
    private String name;
    private int grades[];
    public StudentEntry next;
    
    /** Creates a new instance of StudentEntry */
    public StudentEntry(String my_name, int my_grade)
    {
        name = my_name;
        grades = new int[1];
        grades[0] = my_grade;
    } // StudentEntry
    
    public void addGrade(int new_grade)
    {
        int temp[] = new int[grades.length];
        for (int i = 0; i < grades.length; i++)
        {
            temp[i] = grades[i];
        }
        grades = new int[temp.length + 1];
        for (int j = 0; j < temp.length; j++)
        {
            grades[j] = temp[j];
        }
        grades[grades.length - 1] = new_grade;
    } // addGrade
    
    public String myName()
    {
        return name;
    }
    
    public String toString()
    {
        String out = name;
        
        for (int i = 0; i < grades.length; i++)
        {
            out += " " + grades[i];
        }
        
        return out;
    }
}

}