import java.util.*;
public class a915
{
public static void main(String[] args)
{
boolean change;
int min,position=0,temporary;
Scanner sc=new Scanner(System.in);
int number=sc.nextInt();
int x[][]=new int[number][2];
for(int i=0;i<number;i++)
{
x[i][0]=sc.nextInt();
x[i][1]=sc.nextInt();
}
for(int i=0;i<x.length;i++)
{
min=x[i][0]; //假設x[i][0]舊式最小值 放進min
for(int j=i+1;j<x.length;j++) //從x[i+1][0]開始跑
{
change=false;
if(min>x[j][0] || (min==x[j][0] && x[i][1]>x[j][1])) //若找到比min還要小的值 就將該值放進min 並且紀錄下該值的位置到position
{
min=x[j][0];
position=j;
change=true;
}
if(change) //將min中的值的位置與x[i][0]的位置做轉換 [i][1]亦同
{
temporary=x[i][0];
x[i][0]=x[position][0];
x[position][0]=temporary;
temporary=x[i][1];
x[i][1]=x[position][1];
x[position][1]=temporary;
}
}
}
for(int i[]:x)
System.out.println(i[0]+" "+i[1]);
sc.close();
}
}