개 막는 울타리
시간 제한2초메모리 제한512 MB
2의 거듭제곱 크기의 정사각형 돌을 모두 사용해 빈틈없는 직사각형 벽을 쌓을 수 있는지 판단합니다. 가능하면 벽의 길이와 높이를 출력합니다.
문제
친구가 이웃집 개들이 말썽이라는 이야기를 계속 한다. 그 개들이 정원을 계속 망가뜨리고 냄새나는 "선물"을 남긴다고 한다. 오늘 친구는 개를 막을 울타리를 세워 문제를 해결해 보기로 했다.
울타리는 어느 곳이든 높이가 같아야 한다(즉, 직사각형이어야 한다). 개가 지나갈 수 있는 구멍도 없어야 한다. 다만 친구는 울타리의 정확한 가로세로 크기에는 크게 신경 쓰지 않는다.
친구는 이미 쓸 돌을 샀고, 그 돌을 모두 쓰려고 한다. 돌은 크기별로 정렬되어 있다. 모든 돌의 너비는 같지만 길이와 높이는 다를 수 있다. 각 돌은 길이와 높이가 같고, 둘 다 2의 거듭제곱이다. 울타리의 너비는 돌의 너비와 같아야 한다. 돌을 회전시킬 수 없고, 두 돌을 앞뒤로 이어 놓을 수도 없다.
돌의 한 변 길이와 개수가 주어졌을 때, 가진 돌을 모두 사용해 울타리를 세울 수 있는지 판단하라. 세울 수 있다면 그 울타리의 길이와 높이를 구하라.

그림 K.1: 첫 번째 예제의 그림.
입력
첫째 줄에 정수 ()이 주어진다. 가장 큰 돌의 한 변 길이는 이다.
둘째 줄에 개의 정수 (, )이 주어진다. 는 한 변 길이가 인 돌의 개수이다.
모든 돌의 넓이 합은 최대 이다.
출력
가진 돌을 모두 사용해 구멍 없는 직사각형 울타리를 세울 수 있다면, 울타리의 길이와 높이를 공백으로 구분해 한 줄에 출력하라. 그렇지 않으면 impossible을 출력하라. 답이 여러 개라면 그중 아무 것이나 출력해도 된다.