import java.util.*;
public class Level2_카펫 {
public static int[] solution(int brown, int yellow) {
// yellow 의 약수 쌍을 구한다.
// 약수 쌍을 돌며 가능한 경우 모두 수식에 맞춰 brown 값을 맞춰본다.
// w >= h
// yellow 블럭의 w, h 를 구하는거니 return 할때는 w+2, h+2 해준다.
List<Integer> divisor = getDivisor(yellow);
return findBrownCount(brown, divisor);
}
public static List<Integer> getDivisor(int yellow) {
List<Integer> list = new ArrayList();
for (int i = 1; i <= Math.sqrt(yellow); i++) {
if (yellow % i == 0) {
list.add(i);
list.add(yellow/i);
}
}
Collections.sort(list);
return list;
}
public static int[] findBrownCount(int brown, List<Integer> divisor) {
int x = 0;
int y = divisor.size() - 1;
while (true) {
int w = divisor.get(x);
int h = divisor.get(y);
x++;
y--;
if (h > w) {
continue;
};
int totalBrown = ((w + 2) * 2) + (h * 2);
if (totalBrown == brown) {
return new int[] {w+2, h+2};
}
}
}
public static void main(String[] args) {
int brown = 24;
int yellow = 24;
int[] solution = solution(brown, yellow);
System.out.println(solution[0] + ", " + solution[1]);
}
}