#include<iostream>#include<stdio.h>#include<stdlib.h>#include<string.h>#include<algorithm>using namespace std;enum { SIZ = 1008,};unsigned cnt[SIZ];int sum[SIZ];int num, dol;int ven[30];void fun(){ memset(cnt, 0, sizeof(cnt[0])*(dol+8)); int i, j, v, hi, low; unsigned res = 0; if(ven[0] > dol){ printf("0n"); return; } cnt[0] = 1; for(i=num-1; i>=0; i--){ hi = dol - sum[i]; low = dol - sum[i+1] + 1;if(hi < 0) hi = -1; if(low < 0) low = 0; for(j=hi; j>=low; j--){ res += cnt[j]; } for(j=dol-ven[i]; j>=0; j--){ cnt[j+ven[i]] += cnt[j]; } } if(sum[num] <= dol) res++; printf("%un", res);}void readIn(){ scanf("%d%d", &num, &dol); for(int i=0; i<num; i++){ scanf("%d", &ven[i]); } sort(ven, ven+num); sum[0] = 0; for(int i=1; i<=num; i++){ sum[i] = sum[i-1] + ven[i-1]; }}int main(){ int tst, v=0; scanf("%d", &tst); while(tst--){ printf("%d ", ++v); readIn(); fun(); } return 0;}