#P2099. 订单太多了

订单太多了

Jackson新开了一家公司,在朋友的帮助以及自己的努力下,公司接到了很多订单。
但是,订单太多也是要付出代价的。每个客户都认为自己的订单应该被马上处理。因此,对于第i个订单,在开始处理这个订单之前,每天都要付罚金Si (1<=Si≤<=1000)。而员工们一天只能处理一个订单,而且一个订单可能需要很多天才能完成,整数Ti (1<=Ti<=1000)代表员工们处理完成这个订单所需要的天数。现在,Jackson想让你帮忙写一个程序找出所付罚金最少的订单处理顺序和最少要付多少罚金。

Input

第一行有一个整数N,表示有N组测试数据。
对于每一组测试数据,先给出订单的总数M(M≤100),接下来M行每行有两个整数,分别代表处理完第i个订单所需的时间Ti 和延迟处理这个订单每天要付给客户的罚金Si 。

Output

对于每组测试数据,第一行输出所付罚金最少的订单处理顺序。每个订单用它在输入时的序号(从1开始)表示。如果有多种可能的顺序,输出字典序最小的一种。第二行输出最少要付多少罚金。每两组输出数据之间用一个空行隔开。

Sample Input

1
4
3 4
1 1000
2 2
5 5

Sample Output

2 1 3 4
42

HINT

Source