import java.util.*;
import java.lang.*;
import java.io.*;
 
class Codechef
{
    private static int [] f;
	{
		// your code goes here
		// arr = [1,1,1,1,1]
		// ---> f[] = [0,5,9];
		Scanner sc
=new Scanner
(System.
in);		int t=sc.nextInt();
		int j=1;
		while(t-->0){
		    int n=sc.nextInt();
		    int k=sc.nextInt();
		    int [] arr=new int[n];
		    for(int i=0;i<n;i++){
		        arr[i]=sc.nextInt();
		    }
		    int sum=solve(arr,k);
		    System.
out.
println("Case #"+j
+" : "+sum
); 		    j++;
		}
		sc.close();
	}
 
	public static int solve(int []nums,int k){
	    int n=nums.length;
	    int maxSum=0;
	    for(int num : nums){
	        maxSum+=num;
	    }
	    f=new int[maxSum];
	    f[0]=0;
	    for(int i=1;i<f.length;i++){
	        f[i]=contiguousSubarray(nums,i)+f[i-1];
	        if(f[i]>k){
	            return i;
	        }else if(f[i]==k){
	            return i;
	        }
	    }
	    return -1;
 
	}
 
	public static int contiguousSubarray(int[] nums,int target) {
        Map
<Integer, Integer
> map 
= new HashMap
<>();        int sum = 0;
        int count = 0;
        map.put(0, 1);
 
        for (int num : nums) {
            sum += num;
            int find=sum-target;
            if (map.containsKey(find)) {
                count += map.get(find);
            }
 
            map.put(sum, map.getOrDefault(sum, 0) + 1);
        }
 
        return count;
    }
}
 
				aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgpjbGFzcyBDb2RlY2hlZgp7CiAgICBwcml2YXRlIHN0YXRpYyBpbnQgW10gZjsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCQkvLyBhcnIgPSBbMSwxLDEsMSwxXQoJCS8vIC0tLT4gZltdID0gWzAsNSw5XTsKCQlTY2FubmVyIHNjPW5ldyBTY2FubmVyKFN5c3RlbS5pbik7CgkJaW50IHQ9c2MubmV4dEludCgpOwoJCWludCBqPTE7CgkJd2hpbGUodC0tPjApewoJCSAgICBpbnQgbj1zYy5uZXh0SW50KCk7CgkJICAgIGludCBrPXNjLm5leHRJbnQoKTsKCQkgICAgaW50IFtdIGFycj1uZXcgaW50W25dOwoJCSAgICBmb3IoaW50IGk9MDtpPG47aSsrKXsKCQkgICAgICAgIGFycltpXT1zYy5uZXh0SW50KCk7CgkJICAgIH0KCQkgICAgaW50IHN1bT1zb2x2ZShhcnIsayk7CgkJICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ2FzZSAjIitqKyIgOiAiK3N1bSk7CgkJICAgIGorKzsKCQl9CgkJc2MuY2xvc2UoKTsKCX0KCQoJcHVibGljIHN0YXRpYyBpbnQgc29sdmUoaW50IFtdbnVtcyxpbnQgayl7CgkgICAgaW50IG49bnVtcy5sZW5ndGg7CgkgICAgaW50IG1heFN1bT0wOwoJICAgIGZvcihpbnQgbnVtIDogbnVtcyl7CgkgICAgICAgIG1heFN1bSs9bnVtOwoJICAgIH0KCSAgICBmPW5ldyBpbnRbbWF4U3VtXTsKCSAgICBmWzBdPTA7CgkgICAgZm9yKGludCBpPTE7aTxmLmxlbmd0aDtpKyspewoJICAgICAgICBmW2ldPWNvbnRpZ3VvdXNTdWJhcnJheShudW1zLGkpK2ZbaS0xXTsKCSAgICAgICAgaWYoZltpXT5rKXsKCSAgICAgICAgICAgIHJldHVybiBpOwoJICAgICAgICB9ZWxzZSBpZihmW2ldPT1rKXsKCSAgICAgICAgICAgIHJldHVybiBpOwoJICAgICAgICB9CgkgICAgfQoJICAgIHJldHVybiAtMTsKCSAgICAKCX0KCQoJcHVibGljIHN0YXRpYyBpbnQgY29udGlndW91c1N1YmFycmF5KGludFtdIG51bXMsaW50IHRhcmdldCkgewogICAgICAgIE1hcDxJbnRlZ2VyLCBJbnRlZ2VyPiBtYXAgPSBuZXcgSGFzaE1hcDw+KCk7CiAgICAgICAgaW50IHN1bSA9IDA7CiAgICAgICAgaW50IGNvdW50ID0gMDsKICAgICAgICBtYXAucHV0KDAsIDEpOwogCiAgICAgICAgZm9yIChpbnQgbnVtIDogbnVtcykgewogICAgICAgICAgICBzdW0gKz0gbnVtOwogICAgICAgICAgICBpbnQgZmluZD1zdW0tdGFyZ2V0OwogICAgICAgICAgICBpZiAobWFwLmNvbnRhaW5zS2V5KGZpbmQpKSB7CiAgICAgICAgICAgICAgICBjb3VudCArPSBtYXAuZ2V0KGZpbmQpOwogICAgICAgICAgICB9CiAKICAgICAgICAgICAgbWFwLnB1dChzdW0sIG1hcC5nZXRPckRlZmF1bHQoc3VtLCAwKSArIDEpOwogICAgICAgIH0KIAogICAgICAgIHJldHVybiBjb3VudDsKICAgIH0KfQo=