// Danny Wasserman
// 7/23/2014
// Solution to 2014 SI@UCF Contest Problem: I Want My Meat

import java.util.Arrays;
import java.util.Scanner;

public class monitors {

  public static void main(String[] args) {

    Scanner in = new Scanner(System.in);
    int cases = in.nextInt();

    // Process each case.
    for (int co = 1; co <= cases; co++) {

      // Read in all the mointors.
      int n = in.nextInt();
      Monitor[] monitors = new Monitor[n];
      for (int i = 0; i < n; i++)
        monitors[i] = new Monitor(in.next(), in.nextDouble());

      // Sort and output.
      Arrays.sort(monitors);
      System.out.printf("Monitor set #%d:\n", co);
      for (Monitor m : monitors)
        System.out.println(m.ID);
      System.out.println();
    }
  }

  static class Monitor implements Comparable<Monitor> {

    // Returns the size of this monitor.
    static int getSize(String ID) {
      String size = "";
      for (int i = 0; i < ID.length(); i++)
        if (Character.isDigit(ID.charAt(i))) size += ID.charAt(i);
      return Integer.parseInt(size);
    }

    String ID;
    int size;
    double price;

    // Basic constructor.
    public Monitor(String ID, double p) {
      this.ID = ID;
      this.price = p;
      size = getSize(ID);
    }

    // How we sort...first by size then by price.
    public int compareTo(Monitor o) {
      if (size != o.size) return o.size - size;
      return Double.compare(price, o.price);
    }
  }
}
