ARTUR

각 막대가 남은 막대에 닿지 않고 아래로 미끄러져 탁자 밖으로 나가도록 막대를 치우고 사전 순으로 가장 작은 순서를 출력합니다.

보통7위상 정렬기하아직 제출이 없습니다시간 제한1초메모리 제한64 MB

문제

아서 왕과 원탁의 기사 전설은 누구나 한 번쯤 들어 봤다. 대부분의 이야기는 원탁이 둥근 이유를 기사들 사이의 평등에서 찾는다. 사실은 다르다. 아서가 둥근 탁자를 고른 진짜 이유는 어린 시절에 맡았던 일에 있다.

어린 아서는 산가지 놀이가 끝난 정사각형 탁자를 치우는 일을 맡았다. 산가지 놀이는 다른 막대를 건드리지 않고 막대를 하나씩 조심스럽게 집어 내는 놀이다. 놀이가 끝나면 탁자 위에는 서로 닿지 않는 막대가 여러 개 남는다. 주최 측은 탁자를 치우는 사람에게 엄격한 규칙을 걸었다. 막대는 한 번에 하나씩 빼내야 하고, 자기가 앉은 쪽 탁자 모서리를 향해 가장 짧은 경로로 끌어내야 한다. 끌어내는 동안 막대를 돌려서는 안 되며, 다른 막대에 닿아서도 안 된다. 끝점끼리 스치는 것도 닿는 것으로 본다.

탁자는 좌표평면에서 (0,0)(0, 0)(10000,10000)(10000, 10000)을 마주 보는 꼭짓점으로 하는 정사각형이고, 막대는 그 정사각형 안에 놓인 선분이다. 아서는 xx축 위에 놓인 모서리 쪽에 앉아 있다. 따라서 막대를 치우는 동작은 선분을 yy축의 음의 방향으로 평행이동시켜 탁자 밖으로 빼내는 것이다. 어떤 막대를 지금 빼낼 수 있으려면, 그 선분을 아래로 평행이동시키는 동안 탁자에 남아 있는 다른 막대에 한 번도 닿지 않아야 한다.

막대를 모두 치우는 순서를 구하라.

입력

첫째 줄에 막대의 개수 NN이 주어진다. (1N50001 \le N \le 5000)

다음 NN개의 줄에 막대 하나의 두 끝점을 나타내는 정수 x1x_1, y1y_1, x2x_2, y2y_2가 주어진다. (0x1,y1,x2,y2100000 \le x_1, y_1, x_2, y_2 \le 10000)

어떤 두 막대도 서로 닿지 않는다. 모든 막대를 빼낼 수 있는 순서가 적어도 하나 존재한다.

출력

막대를 빼내는 순서를 공백 하나로 구분해 한 줄에 출력한다. 막대의 번호는 입력에 주어진 순서를 따른다.

가능한 순서가 여러 개면 사전 순으로 가장 앞서는 순서를 출력한다. 즉, 올바른 순서 중에서 첫 번째 번호가 가장 작은 것을, 그런 것이 여럿이면 두 번째 번호가 가장 작은 것을 고르고, 이후 자리에도 같은 규칙을 적용한다.