월레스는 잘 알려진 갱스터, 진짜배기 G입니다. 여느 갱스터처럼 그는 보석을 사는 데 즐겨 쓰는 큰돈을 가지고 있습니다. 안전을 위해 그는 돈을 지갑 하나에 몰아넣지 않고 여러 지갑에 나누어 둡니다. 이제 월레스는 동료들과 함께 시내로 놀러 나가려고 합니다.
그는 지갑의 약 절반만 챙겨 가고 싶지만, 동시에 충분한 돈을 지니고 싶어 합니다. 좀 더 정확히 말하면, 월레스는 2n−1개의 지갑을 가지고 있고, 각 지갑에는 얼마간의 달러와 얼마간의 유로가 들어 있습니다. 그는 나들이에 정확히 n개의 지갑을 챙기려 하는데, 챙긴 n개 지갑에 든 달러의 합이 전체 2n−1개 지갑에 든 달러 합의 절반 이상이고, 챙긴 n개 지갑에 든 유로의 합도 전체 지갑에 든 유로 합의 절반 이상이 되도록 하고 싶습니다.
월레스는 돈 버는 법을 알고, 당신은 프로그래밍을 압니다. 무엇을 해야 할지 이제 아시겠죠.
입력의 첫 줄에는 데이터 집합의 개수를 나타내는 정수 t가 주어집니다. 이어서 각 데이터 집합의 설명이 주어집니다.
각 데이터 집합의 첫 줄에는 정수 n (1≤n≤500000)이 주어지며, 이는 월레스가 2n−1개의 지갑을 가지고 있음을 뜻합니다. 다음 2n−1개의 줄에는 각 지갑의 정보가 주어집니다. 각 줄에는 두 정수 di, ei (0≤di,ei≤109)가 있으며, 이는 i번째 지갑에 di달러와 ei유로가 들어 있음을 뜻합니다.
모든 데이터 집합에 대한 n의 합은 2500000을 넘지 않는다고 가정해도 됩니다.
각 데이터 집합에 대한 답을 차례대로 출력합니다.
조건을 만족하는 n개의 지갑을 항상 고를 수 있음이 알려져 있습니다. 답을 유일하게 정하기 위해, 월레스가 다음의 고정된 방법으로 지갑을 고른다고 가정합니다.
이렇게 하면 정확히 n개의 지갑이 선택되고, 두 조건이 항상 만족됩니다.
각 데이터 집합마다 두 줄을 출력합니다. 첫 줄에는 Yo를 출력합니다. 둘째 줄에는 선택한 n개의 지갑 번호를 오름차순으로 공백 하나로 구분하여 출력합니다.