#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct platform{
int H, L, R, index;
} A[1001] = {{-1, -1, 20001, 0}}, B[1001];
int comp(const void * _a, const void *_b)
{
const struct platform * a = _a, * b = _b;
if (a->H != b->H)
return a->H - b->H;
else
return a->index - b->index;
}
int main(void)
{
int N;
scanf("%d", &N);
for (int i = 1; i <= N; i++)
{
scanf("%d%d%d", &A[i].H, &A[i].L, &A[i].R);
A[i].index = i;
}
memcpy(B, A, sizeof(A));
qsort(A, N + 1, sizeof(struct platform), comp);
for (int i = 1; i <= N; i++)
{
struct platform * p = bsearch(&B[i], A, N + 1, sizeof(struct platform), comp);
int left = -1, right = -1;
while (--p >= A && (left < 0 || right < 0))
{
if (p->L < B[i].L && p->R > B[i].L && left < 0)
{
left = p->index;
}
if (p->R > B[i].R && p->L < B[i].R && right < 0)
{
right = p->index;
}
}
printf("%d %d\n", left, right);
}
}