야수들의 겨울 숲 습격이 시작되었다. 이를 맞아 겨울 숲의 수호자는 숲 상공에서 야수들에게 마법 화살을 쏘아 겨울 숲을 지키고자 한다.
습격이 시작된 시점부터 매 초마다 다음의 사건들이 순서대로 일어난다.
수호자는 야수가 언제 어디서 생성될지 미리 알고 있으며, 이를 바탕으로 매 초마다 어떤 야수를 쏠지 전략을 잘 세우면 숲이 입는 피해를 줄일 수 있다.
예를 들어, 습격이 시작된 시점의 0초 후에 20만큼 떨어진 위치에서 야수 1이 등장하고, 1초 후에 14만큼 떨어진 위치에서 야수 2가 등장하고 K=10이라고 가정하자. 이 때 수호자가 야수 1을 0초부터 10번 공격하고 야수 2를 10초부터 10번 공격한다면, 야수 1은 겨울 숲에 다가오기 전에 죽지만 야수 2는 15초부터 겨울 숲을 공격하기 시작해서 19초까지 숲을 파괴하고 죽으므로 겨울 숲은 5의 피해를 입는다.
하지만 야수 1을 0초부터 1번, 야수 2를 1초부터 10번, 야수 1을 다시 11초부터 9번 공격하면 겨울 숲이 피해를 입지 않은 채로 모든 야수를 쓰러트릴 수 있다.
이 때 이러한 전략은 (시작 시간, 공격 횟수, 야수의 번호)로 나타내어지는 사건들이 시간 순서로 정렬된 집합으로 표현할 수 있다. 위의 예시에서 첫 번째 전략은 (0,10,1), (10,10,2)로, 두 번째 전략은 (0,1,1), (1,10,2), (11,9,1)로 표현할 수 있다.
당신의 목적은 수호자를 도와 겨울 숲의 피해를 최소화하면서 모든 야수를 쓰러트리는 전략을 찾는 것이다.
첫 줄에 테스트 케이스의 수인 T (1≤T≤2,000)이 주어진다.
각 테스트 케이스의 첫 줄에는 야수들의 수인 N (1≤N≤10,000)과 야수 하나를 쓰러트리기 위해 쏴야 하는 화살의 수인 K (1≤K≤100,000)이 주어진다.
다음 N개의 줄에 i번째 야수가 생성되는 시간인 a_i과 위치인 b_i (0≤a_i,b_i≤109)가 주어진다.
모든 테스트 케이스들의 N의 합은 10,000을 넘지 않음이 보장된다.
각 테스트 케이스에 대해 수호자가 세운 최적의 전략을 다음과 같이 출력한다.
첫 줄에는 겨울 숲이 입는 총 피해의 최소값을 출력한다.
다음 줄에는 수호자가 세운 전략을 표현하는 사건의 개수 M (N≤M≤10×N)을 출력한다. 입력의 모든 경우에 대해, 이러한 사건의 개수가 10×N을 넘지 않는 전략이 항상 존재함이 보장된다.
다음 M개의 줄에는 사건의 시작 시간인 L, 시작 시간부터 연속해서 같은 야수를 공격한 횟수인 D와 공격한 야수의 번호인 j를 한 줄씩 시간 순서로 출력한다. (0≤L≤1014, 0<D≤K, 1≤j≤N)
가능한 방법이 여럿일 경우 그 중 아무거나 출력한다.