#include <stdio.h>
int main() {
int n;
while (scanf("%d", &n) != EOF) {
int a[n][2];
int min = 101;
int minIndex = 101;
for (int i = 0; i < n; i++) {
scanf("%d %d", &a[i][0],
&a[i][1]); //n行,2列,第一个用来接受学号,第二个用来接受成绩
}
//遍历a[n][1],找到当前最小的数,并且标记好下标 若该元素比min更小,就再次判断学号大小,最后
//放到前面
for (int i = 0; i < n; i++) {
for(int j=i;j<n;j++)
{
if (a[j][1] < min)
{ //找到当前最小的下标和值
min = a[j][1];
minIndex = j;
}else if(a[j][1] == min)
{
if( a[j][0] < a[minIndex][0])
{
min = a[j][1];
minIndex = j;
}
}
}
int temp=a[i][1];
a[i][1]=a[minIndex][1];
a[minIndex][1]=temp;
temp=a[i][0];
a[i][0]=a[minIndex][0];
a[minIndex][0]=temp;
min = 101;
minIndex = 101;
}
for(int i=0;i<n;i++)
{
printf("%d %d \n",a[i][0],a[i][1]);
}
}
return 0;
}