아담은 문제 풀기를 좋아한다. 아담에게 0과 1로만 이루어진 길이 N의 수열이 주어진다.
아담은 정확히 K번 조작을 한다. 매 조작마다 수열의 원소를 하나 골라 그 원소를 뒤집는다. 뒤집으면 0은 1이 되고 1은 0이 된다. K번을 모두 마쳤을 때 수열의 원소가 전부 0이어야 한다.
아담은 이 문제를 쉽게 풀지만, 방법이 몇 가지나 되는지 궁금해졌다. 조건을 만족하는 방법의 수를 109+7로 나눈 나머지를 구하라.
어떤 i에 대해 i번째 조작에서 고른 원소가 서로 다르면, 두 방법은 다른 방법으로 센다.
첫째 줄에 테스트 케이스의 개수 T (1≤T≤50)가 주어진다. 이어서 테스트 케이스가 T개 주어진다.
각 테스트 케이스의 첫째 줄에는 수열의 길이 N (1≤N≤1000)과 조작 횟수 K (1≤K≤1000)가 공백으로 구분되어 주어진다. 다음 N개 줄에는 수열의 원소가 한 줄에 하나씩, 수열의 순서대로 0 또는 1로 주어진다.
각 테스트 케이스마다 한 줄에 Case #X: Y 형식으로 출력한다. X는 1부터 시작하는 테스트 케이스 번호이고, Y는 조건을 만족하는 방법의 수를 109+7로 나눈 나머지다.