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