샤리프 슈퍼컴퓨터

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

SSC는 샤리프 대학교에서 설계한 슈퍼컴퓨터로, 2개의 "마스터" 프로세서와 $n$개의 "슬레이브" 프로세서로 이루어져 있다. 이 컴퓨터는 소프트웨어를 병렬로 실행할 수 있다. 마스터 프로세서 중 하나가 메모리와 CPU 사용량이 균형을 이루도록 슬레이브 프로세서들에 소프트웨어를 적재하고, 다른 마스터는 시스템을 감시하는 데 쓰인다.

소프트웨어의 여러 부분이 서로 의존하기 때문에 프로세서 사이에는 많은 메시지가 오간다. 메시지 전달 부하를 최소화하려면 매우 빠른 네트워크가 필요하다. 네트워크를 최적화하기 위해, 모든 프로세서 쌍이 통신 케이블로 직접 연결되는 완전 그래프(클리크) 구조를 만든다.

케이블은 두 종류다. 파란색 케이블은 초당 최대 100Mb를, 빨간색 케이블은 초당 최대 1Gb를 전송할 수 있다. 두 슬레이브 프로세서 사이는 파란색 케이블 하나로 연결한다. 마스터 프로세서의 통신량이 더 많으므로, 두 마스터는 빨간색 케이블 하나로 연결하고, 각 마스터와 각 슬레이브도 빨간색 케이블 하나로 연결한다. 따라서 빨간색 케이블은 마스터끼리 연결하는 1개와 각 마스터-슬레이브를 연결하는 $2n$개를 합쳐 정확히 $2n+1$개다.

SSC는 $n+2$개의 메인보드로 구성되며, 각 메인보드에는 프로세서 하나와 필요한 메모리, 그리고 수평으로 배열된 $n+1$개의 동일한 네트워크 소켓이 들어 있다. 메인보드들은 수직 랙 박스의 각 수평 선반에 하나씩 꽂히므로, 각 메인보드는 랙에서의 높이로 유일하게 식별된다.

냉각 문제 때문에 두 마스터 메인보드는 랙의 가장 아래 선반과 가장 위 선반에 놓아야 한다. 아래쪽 마스터의 높이를 $0$이라 하고, 나머지 메인보드의 높이는 모두 $0$보다 큰 서로 다른 정수다. 당신은 컴퓨터 엔지니어로서 빈 랙 박스와 준비된 메인보드들을 받아 SSC의 최종 조립을 맡았다. 배선을 깔끔하고 팽팽하게 유지하고 싶으므로, 두 메인보드를 잇는 케이블의 길이가 두 보드의 높이 차이와 정확히 같도록 메인보드들을 배치하려 한다.

정리하면, 각 보드의 높이를 다음과 같이 정해야 한다.

  • 아래쪽 마스터는 높이 $0$, 위쪽 마스터는 가장 높은 위치(높이 $H$).
  • $n$개의 슬레이브는 $0$과 $H$ 사이의 서로 다른 양의 정수 높이.

이때 다음 두 조건을 모두 만족해야 한다.

  • 마스터를 포함하는 모든 쌍 사이의 길이(즉 빨간색 케이블 길이)로 이루어진 $2n+1$개의 다중집합이 주어진 빨간색 케이블 길이들과 정확히 일치한다.
  • 모든 슬레이브 쌍 사이의 높이 차이가 각각 주어진 파란색 케이블 길이 중 하나와 같다. (각 파란색 길이는 무제한으로 쓸 수 있다.)

입력

입력은 여러 개의 테스트 케이스로 이루어진다.

각 테스트 케이스의 첫 줄에는 두 정수 $n$과 $m$이 주어진다 ($1 \le n \le 100$, $1 \le m \le 1000$). 둘째 줄에는 빨간색(기가비트) 케이블 $2n+1$개의 길이가 주어진다. 셋째 줄에는 파란색(메가비트) 케이블로 사용할 수 있는 $m$개의 길이가 주어진다.

입력의 마지막 줄에는 두 개의 $0$이 주어지며, 이는 입력의 끝을 나타낸다.

출력

각 테스트 케이스마다 한 줄에 $n+1$개의 정수를 출력한다. 첫 번째 수는 위쪽 마스터 프로세서의 높이 $H$이고, 이어지는 $n$개의 수는 슬레이브들의 높이를 오름차순으로 나열한 것이다.

조건을 만족하는 배치가 여러 개라면, 출력하는 수열(위쪽 마스터의 높이 다음에 오름차순 슬레이브 높이들이 오는 수열)을 정수로 비교했을 때 사전순으로 가장 작은 것을 출력한다.

조건을 만족하는 배치가 하나도 없으면 Impossible을 출력한다.