Mint

시간 제한1초메모리 제한128 MB

문제

캐나다 왕립 조폐국(Royal Canadian Mint)이 동전을 쌓아 다리를 만드는 디자이너 커피 테이블을 새로 의뢰했다. 모든 테이블은 다리가 네 개이며, 각 다리는 한 종류의 동전만 쌓아 만든 기둥이다. 네 다리는 서로 다른 종류의 동전을 사용해야 하고, 네 다리의 길이는 모두 정확히 같아야 한다.

외국 동전과 기념 주화를 포함해 여러 종류의 동전을 쓸 수 있으며, 각 동전 종류는 고유한 두께를 가진다. 두께가 $d$인 동전을 $k$개 쌓아 만든 다리의 길이는 $k \cdot d$이고, 여기서 $k \ge 1$은 동전의 개수(자연수)이다.

어떤 길이 $L$에 대해, 두께가 $L$을 나누는 동전 종류가 서로 다른 것으로 네 개 이상 있으면 그 길이 $L$을 만들 수 있다고 하자. 이때 그 네 다리는 각각 자기 종류의 동전을 정수 개 쌓아 모두 같은 길이 $L$에 도달할 수 있다.

쓸 수 있는 동전 종류들과 원하는 테이블 높이가 주어질 때, 원하는 높이에 가장 가까우면서 만들 수 있는 두 다리 길이, 즉 원하는 높이를 넘지 않는 가장 큰 길이와 원하는 높이보다 작지 않은 가장 작은 길이를 구하라.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 두 정수 $n$과 $t$가 있는 줄로 시작한다($4 \le n \le 50$, $1 \le t \le 10$). $n$은 쓸 수 있는 동전 종류의 수, $t$는 설계할 테이블의 수이다.

이어지는 $n$개의 줄에는 각각 동전 한 종류의 두께가 100분의 1밀리미터 단위의 정수로 주어진다. 서로 다른 두 동전 종류가 같은 두께를 가질 수도 있다.

그다음 $t$개의 줄에는 각각 설계할 테이블의 원하는 높이가 역시 100분의 1밀리미터 단위의 정수로 주어진다. 원하는 높이는 항상 만들 수 있는 가장 작은 길이 이상이므로, 구해야 하는 두 값은 언제나 존재한다.

마지막 테스트 케이스 다음에는 0 0만 있는 줄이 오며, 이 줄은 처리하지 않는다.

출력

각 테이블의 원하는 높이에 대해, 주어진 순서대로 한 줄에 두 정수를 공백 하나로 구분하여 출력한다. 먼저 원하는 높이를 넘지 않는, 만들 수 있는 가장 큰 다리 길이를, 그다음 원하는 높이보다 작지 않은, 만들 수 있는 가장 작은 다리 길이를 출력한다.