평면 지도 위에 점 n개씩으로 이루어진 두 집합 R과 W가 있다. R∪W의 어떤 세 점도 한 직선 위에 있지 않다. 지대지 로켓은 R의 점에 있고, 파괴해야 할 적 목표물은 W의 점에 있다. 로켓은 직선으로만 날아가고, 로켓 하나가 목표물 하나를 파괴하며 목표물 하나는 로켓 하나에만 맞는다.
두 로켓의 궤적은 서로 교차하면 안 된다. 이 조건을 지키는 배정 중에서 비행 거리의 합 ∑i=1n∣riwki∣이 가장 작은 배정을 구하라. ∣pq∣는 두 점 p와 q 사이의 유클리드 거리이고, wki는 로켓 ri가 파괴하는 목표물이다. n!가지 배정 가운데 비행 거리의 합이 최소인 배정은 정확히 하나라고 입력이 보장하므로, 답은 유일하다.
첫째 줄에 R과 W의 크기 n이 주어진다 (1≤n≤200).
다음 2n개 줄에는 지도 위 한 점의 좌표 x와 y가 공백 하나를 사이에 두고 주어진다 (−10000≤x,y≤10000). 앞의 n개 줄은 R의 점이고, 뒤의 n개 줄은 W의 점이다. i+1번째 줄이 ri, i+n+1번째 줄이 wi를 나타낸다 (1≤i≤n). 2n개 점은 모두 서로 다르고, 그중 어떤 세 점도 한 직선 위에 있지 않다.
n개 줄을 출력한다. i번째 줄에는 로켓 ri가 파괴하는 목표물의 번호 ki를 출력한다.