#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
using namespace std;
#define size 50005
struct Node
{
int left, right;
};
Node data[size];
int n;
int cmp(const void *a, const void *b)
{
struct Node *c = (Node *)a;
struct Node *d = (Node *)b;
if(c->left != d->left) return c->left - d->left;
else return c->right - d->right;
}
int main()
{
freopen("1.txt", "r", stdin);
int i, j;
Node res[size];
scanf("%d", &n);
for (i = 0; i < n; i++)
{
scanf("%d%d", &data[i].left, &data[i].right);
}
qsort(data, n, sizeof(data[0]), cmp);
res[0].left = data[0].left; res[0].right = data[0].right;
//在此贪心选择区间
for (i = 1, j = 0; i < n; i++)
{
//i区间就在j区间的范围内,什么也不用动
if (res[j].left <= data[i].left && res[j].right >= data[i].right)
{
;
}
else if (res[j].right < data[i].left)
{
j++;
res[j].left = data[i].left; res[j].right = data[i].right;
}
else
{
res[j].right = data[i].right;
}
}
for (i = 0; i <= j; i++)
{
printf("%d %d/n", res[i].left, res[i].right);
}
return 0;
}