팔씨름 토너먼트
시간 제한1초메모리 제한128 MB
2^N명이 참가하는 토너먼트에서 승자는 상대의 현재 힘만큼 힘을 잃고 다음 경기 전에 K만큼 회복한다. 우승자와 결승까지 상대한 선수 명단을 순서대로 구한다.
문제
쿠미스 씨가 명의 선수가 참가하는 팔씨름 토너먼트를 개최합니다. 선수들은 번부터 번까지 번호가 매겨져 있습니다. 토너먼트는 싱글 엘리미네이션 방식입니다. 첫 번째 라운드에서는 번 선수가 번 선수와, 번 선수가 번 선수와 겨루는 식으로 진행됩니다. 다음 라운드에서는 (, )의 승자가 (, )의 승자와, (, )의 승자가 (, )의 승자와 겨루며, 이렇게 우승자 한 명이 남을 때까지 계속됩니다.
각 선수 는 초기 힘 를 가집니다. 두 선수가 겨루면 현재 힘이 더 큰 쪽이 이기고, 승자의 힘은 패자의 현재 힘만큼 줄어듭니다. 두 선수의 현재 힘이 같다면 번호가 더 작은 선수가 이깁니다(이 경우 승자의 힘은 이 됩니다).
승자는 다음 경기 전에 힘을 회복합니다. 현재 힘이 최대 만큼 늘어나지만, 초기 힘 를 넘을 수는 없습니다. 즉, 다음 경기 전 힘은 가 됩니다. 첫 번째 라운드 전에는 회복이 없습니다.
토너먼트의 우승자가 누구인지, 그리고 우승자가 경기 순서대로 이긴 선수들이 누구인지 구하세요.
입력
첫 번째 줄에 테스트 케이스의 수를 나타내는 정수 () 가 주어집니다. 각 테스트 케이스는 두 정수 () 과 () 가 있는 줄로 시작합니다. 다음 줄에는 각 선수의 초기 힘을 나타내는 개의 정수 () 가 주어집니다.
출력
각 테스트 케이스마다 두 줄을 출력합니다. 첫 번째 줄에는 토너먼트 우승자의 번호를 출력합니다. 두 번째 줄에는 우승자가 이긴 선수들을 경기 순서(첫 라운드부터 결승까지)대로 개의 정수로 출력하며, 정수는 공백 하나로 구분합니다.