다리

아직 제출이 없습니다시간 제한2초메모리 제한128 MB

문제

이차원 평면 왕국에서 모든 중요한 장소는 (X,0)(X, 0) 꼴의 점에 있으며, 여기서 XX는 양의 정수입니다.

왕은 중요한 장소 NN쌍을 다리로 잇도록 명령했습니다. 점 (A,0)(A, 0)(B,0)(B, 0) (A<BA < B)을 잇는 다리는 세 개의 선분으로 이루어진 꺾은선입니다. 즉 (A,0)(A, 0)에서 (A,P)(A, P)까지, 이어서 (A,P)(A, P)에서 (B,P)(B, P)까지, 다시 (B,P)(B, P)에서 (B,0)(B, 0)까지이며, 양의 정수 PP를 그 다리의 높이(level) 라고 부릅니다. NN개의 다리는 모두 서로 다른 높이를 가져야 하고, 그 높이들은 정확히 11부터 NN까지의 정수입니다.

다리끼리는 서로 교차할 수 있지만, 교차가 생기면 기술적으로 곤란합니다. 두 다리가 만나는 교차점의 총 개수가 최소가 되도록 각 다리에 높이를 배정하세요. 모든 수직 선분의 xx좌표가 서로 다르고 모든 수평 선분의 높이가 서로 다르므로, 두 다리는 한쪽의 수직 선분이 다른 쪽의 수평 선분과 만나는 곳에서만 교차합니다. 각 장소는 쌍 목록에 최대 한 번만 등장합니다.

입력

첫 번째 줄에 테스트 케이스의 수를 나타내는 정수 ZZ (Z=1Z = 1)가 주어집니다. 이어서 테스트 케이스가 주어집니다.

각 테스트 케이스의 첫 줄에는 다리로 이어야 하는 장소 쌍의 수 NN (1N50001 \le N \le 5000)이 주어집니다. 다음 NN개의 줄에는 각각 두 정수 AABB (1A<B2N1 \le A < B \le 2N)가 주어지며, 이는 (A,0)(A, 0)(B,0)(B, 0)의 장소를 다리로 이어야 함을 뜻합니다. 각 장소는 최대 한 번만 등장하므로, 2N2N개의 좌표는 정확히 11부터 2N2N까지의 정수입니다.

출력

각 테스트 케이스마다 한 줄을 출력합니다. 배정한 높이가 낮은 것부터 순서대로, 각 높이에 놓인 다리의 번호를 공백으로 구분하여 나열합니다. 즉 높이 11에 놓인 다리, 높이 22에 놓인 다리, 그리고 높이 NN에 놓인 다리 순서입니다. 다리 번호는 입력에 주어진 순서대로 11부터 매깁니다.

배정은 교차점의 총 개수를 최소로 만들어야 합니다. 최소를 달성하는 배정이 여러 개라면 사전순으로 가장 작은 수열을 출력합니다. 즉 높이 11의 다리 번호가 가장 작고, 그중에서 높이 22의 다리 번호가 가장 작으며, 이런 식으로 이어지는 배정을 선택합니다.

힌트

(x1,x2,,xN)(x_1, x_2, \ldots, x_N)은 다리 xix_i를 높이 ii에 놓는 배정을 뜻합니다.

첫 번째 테스트 케이스에서 (2,3,1)(2, 3, 1)(3,2,1)(3, 2, 1)은 모두 교차점이 00개이며, 이는 당연히 가능한 최솟값입니다. 이 둘 중 사전순으로 더 작은 것은 (2,3,1)(2, 3, 1)이므로 이것이 정답입니다.