import java.io.*;
import java.util.*;
class Solution {
static int max, gram;
static int[] numbers;
static List<Integer> snack;
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder();
for (int test_case = 1; test_case <= T; test_case++) {
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
gram = Integer.parseInt(st.nextToken());
snack = new ArrayList<>();
st = new StringTokenizer(br.readLine());
for (int i = 0; i < N; i++) {
snack.add(Integer.parseInt(st.nextToken()));
}
max = Integer.MIN_VALUE;
numbers = new int[2];
combination(0, 0);
max = (max < 0) ? -1 : max;
sb.append("#").append(test_case).append(" ").append(max).append("\n");
}
br.close();
System.out.println(sb);
}
public static void combination(int cnt, int start) {
if (cnt == 2) {
System.out.println(Arrays.toString(numbers));
int sum = 0;
for (int i = 0; i < numbers.length; i++) {
sum += numbers[i];
}
if (max < sum && sum <= gram) {
max = sum;
}
return;
}
for (int i = start; i < snack.size(); i++) {
numbers[cnt] = snack.get(i);
combination(cnt + 1, i + 1);
}
}
}