import java.util.*;
public class Main {
public static int[] solution(int n, int max, int[] array) {
int[] cardFrequencies = new int[15];
for (int card : array) {
cardFrequencies[card]++;
}
cardFrequencies[14] = cardFrequencies[1];
int[] result = new int[2];
int maxValue = Integer.MIN_VALUE;
for (int i = 14;i>=2; i--) {
if (cardFrequencies[i] >= 3) {
for (int j = 14;j>=2 ; j--) {
if (i!= j && cardFrequencies[j] >= 2) {
if(i==14)i = 1;
if(j==14)j = 1;
int sum = (i * 3) + (j * 2);
if (sum <= max && sum > maxValue) {
maxValue = sum;
result[0] = i;
result[1] = j;
return result;
}
}
}
}
}
if (result[0] == 0 && result[1] == 0) {
return new int[]{0, 0};
} else {
return result;
}
}
public static void main(String[] args) {
System.out.println(java.util.Arrays.equals(solution(9, 34, new int[]{6, 6, 6, 8, 8, 8, 5, 5, 1}), new int[]{8, 5}));
System.out.println(java.util.Arrays.equals(solution(9, 37, new int[]{9, 9, 9, 9, 6, 6, 6, 6, 13}), new int[]{6, 9}));
System.out.println(java.util.Arrays.equals(solution(9, 40, new int[]{1, 11, 13, 12, 7, 8, 11, 5, 6}), new int[]{0, 0}));
}
}