package timus;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* Created by sherxon on 12/3/16.
*/
public class FinalStandings1100 {
public static void main(String[] args) throws IOException {
BufferedReader in =new BufferedReader(new InputStreamReader(System.in));
int n=Integer.parseInt(in.readLine());
Pair[] pairs= new Pair[n];
String[] s=null;
for (int i = 0; i < n; i++) {
s=in.readLine().split(" ");
int id=Integer.parseInt(s[0]);
int sums=Integer.parseInt(s[1]);
pairs[i]= new Pair(id, sums);
}
sort(pairs);
}
private static void sort(Pair[] pairs) {
Pair[] temp=new Pair[pairs.length];
sort(pairs, 0, pairs.length-1, temp);
for (int i = pairs.length-1; i >=0; i--) {
System.out.println(pairs[i].id + " " + pairs[i].sums);
}
}
private static void sort(Pair[] a, int lo, int hi, Pair[] temp) {
if(lo >= hi)return;
int mid=lo+ (hi - lo)/2; //4
sort(a, lo, mid, temp); // 0->4
sort(a, mid + 1, hi, temp); // 5->9
merge(a, lo, mid, hi, temp);
}
private static void merge(Pair[] a, int lo, int mid, int hi, Pair[] b) {
int i=lo;
int j=mid+1;
for (int k = lo; k <=hi ; k++) {
b[k]=a[k];
}
for (int k = lo; k <=hi ; k++) {
if(i > mid) a[k]=b[j++];
else if(j > hi)a[k]=b[i++];
else if(b[i].sums < b[j].sums) a[k]=b[i++];
else a[k]=b[j++];
}
}
private static class Pair{
int id;
int sums;
public Pair(int id, int sums) {
this.id = id;
this.sums = sums;
}
}
}