병사 대열
시간 제한5초메모리 제한256 MB
주어진 키를 가진 병사들을 일렬로 세울 때 앞에 자신보다 작은 병사가 있어 쓰러지는 병사가 정확히 K명이 되는 경우의 수를 셉니다.
문제
지구에서 멀리 떨어진 어느 행성에서 비트랜드와 바이트랜드가 전쟁을 벌이고 있다. 비트랜드 여왕에게는 병사 명이 있다. 여왕은 바이트랜드 국경에서 방어가 가장 허술한 지점을 찾아냈지만, 그곳에 닿으려면 병사가 한 줄로 서서 좁은 협곡을 지나야 한다.
협곡에는 바이트랜드가 설치한 방어 장치가 있다. 키가 인 병사가 협곡을 지나가면, 그 뒤를 따르는 병사 가운데 키가 보다 엄밀히 큰 병사는 자동 사격에 죽는다. 다시 말해 자기보다 앞에 선 병사 중 키가 엄밀히 작은 병사가 한 명이라도 있으면 그 병사는 죽는다. 맨 앞에 선 병사는 언제나 살아남는다.
여왕도 이 사실을 알고 있다. 하지만 아무도 죽지 않도록 키가 증가하지 않는 순서로 병사를 보내는 것이 늘 가능하지는 않고, 몇 명은 목숨을 잃어야 한다. 여왕은 가장 나은 대열을 찾으려고, 협곡에서 정확히 명이 죽는 키 배열이 몇 가지인지 세어 달라고 한다.
두 배열 와 는 어떤 ()에 대해 번째 병사의 키가 서로 다르면 다른 배열이다.
입력
첫째 줄에 테스트 케이스의 수 ()가 주어진다.
각 테스트 케이스는 두 줄로 이루어진다. 첫째 줄에 두 정수 ()과 ()가 주어진다. 둘째 줄에 병사 명의 키가 공백으로 구분되어 주어진다. 키는 양의 정수이고, 서로 다른 키 값은 100가지 이하이며, 키가 같은 병사는 1000명 이하이다.
출력
각 테스트 케이스마다 Case x: y 형식으로 한 줄씩 출력한다. 는 1부터 시작하는 테스트 케이스 번호이고, 는 정확히 명이 죽는 배열의 수이다. 는 매우 클 수 있으므로 로 나눈 나머지를 출력한다.