1.

 /* Angewandte Mathematik, SS09, IFB 2C
  * ACM Problem #11056 (Formula 1)
  * Link: http://icpcres.ecs.baylor.edu/onlinejudge/index.php?option=com_onlinejudge&Itemid=8&category=22&page=show_problem&problem=1997
  *
  * @author Dennis Wilfert
  * @author Johann Studt
  * @version 1.0, 04/04/2009
  *
  * Status : Accepted
  * Runtime: 0.510
  */

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;


public class Main {

    public static void main(String[] args) throws IOException {
               
            BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

            while(true){
               
                // Hilfsvariable um zu sehen wieviele Fahrer bereits in einer Reihe stehen
                int row = 1;
               
                // Hilfsvariable um zu sehen was die aktuelle Reihe ist
                int rown = 0;
               
                // Anzahl der Fahrer
                int number;
               
                try{
                    number = Integer.parseInt(reader.readLine().trim());
                } catch (NullPointerException e){
                    break;
                }
           
                // Zeit der Fahrer
                long [] times = new long[number];
                //Namen der Fahrer
                String [] names = new String[number];
           
                // Alle Farer durchgehen
                while(number > 0){
                       
                    String driver = (reader.readLine());
                    // Namen des Fahrers aus dem String auslesen
                    names [number -1] = driver.substring(0, driver.indexOf(" "));
                    // Zeit des Fahrers auslesen und in Millisekunden umrechnen
                    times [number -1] = Long.parseLong(driver.substring(driver.indexOf(": ")+2, driver.indexOf(" min" )))*60L*1000L+Long.parseLong(driver.substring(driver.indexOf("min ")+4, driver.indexOf(" sec" )))*1000L+Long.parseLong(driver.substring(driver.indexOf("sec ")+4, driver.indexOf(" ms" )));
                       
                    number--;
                }
               
                number = times.length;
               
                /* Arrey mit den Zeiten durchlaufen und immer die Position, an der die kleinste Zeit steht, Speichern und
                *  danach die Zeit auf 44000000ms setzen, damit sie nicht mehr beahtet wird.
                */
                for (int j = 0; j < number; j++)
                {
                    // Position der aktuell kleinsten Zeit
                    int pos = 0;
                    // Hilfsvariable um zu sehen ob mehrere Zeiten gleich sind
                    boolean same = false;
                    long k = 36000000;   
                   
                    // Arrey durchlaufen und die kleinste Zeit suchen
                    for(int i = 0; i < number; i++)
                    {
                        // Existieren zwei gleiche Zeiten same=true setzen und die Schleife unterbrechen
                        if(k==times[i]){
                            same=true;
                            break;
                        }
                       
                        if(k > times[i])
                        {
                            k = times[i];
                            pos = i;
                        }
   
                    }
                   
                    // Existieren nicht mehrere gleiche Zeiten, den Namen des Fahrers der gefundenen Zeit ausgeben
                    if(same==false){
                        if(times[pos] < 36000000){
                            times[pos] = 44000000;
                            row++;
                            if(row == 2){
                                row = 0;
                                rown +=1;
                                System.out.println("Row " + rown);
                            }
                            System.out.println(names[pos]);
                        }
                    }
                   
                    // Mehrere gleiche Zeiten
                    if(same==true){
                        int counter = 0;
                       
                        // Anzahl der Fahrer mit der selben Zeit suchen
                        for(int i = 0; i < number; i++){
                            if(times[i] == k)counter++;
                        }
                        // Array mit dieser groesse anlegen
                        String[] samenames = new String[counter];
                        int l = 0;
                        /* Position der gleichen Zeiten suchen und die Namen der Fahrer mit dieser Zeit aus
                         * names in samenames eintragen
                         */
                        for(int i = 0; i < number; i++){
                            if(times[i] == k){
                                times[i] = 44000000;
                                samenames[l] = names[i];
                                l++;
                            }
                        }
                        // Array CASE INSENSITIVE sortieren
                        Arrays.sort(samenames, String.CASE_INSENSITIVE_ORDER);
                       
                        // Namen ausgeben
                        for(String n: samenames){
                            row++;
                            if(row == 2){
                                row = 0;
                                rown +=1;
                                System.out.println("Row " + rown);
                            }
                            System.out.println(n);
                        }
                       
                    }
   
                }
                System.out.println();
                if(reader.readLine() == null) break;
            }

    }

}