만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

수영장

면접 대비

시간 제한2초메모리 제한1024 MB

요약
면적 C가 서로 다른 두 소수의 곱일 때, 목록에서 그 두 소수를 찾아 작은 값부터 출력합니다.
난이도

쉬움10점 중 3점

유형
해시맵, 정수론
정답자
아직 제출이 없습니다

문제

내일 프로그래밍 학교 산술학과가 건물 지하에 새 수영장을 지을 예정이다. 이 수영장은 주로 새로운 부동 소수점 연산 알고리즘을 시험하는 데 쓰이며, 특히 여러 액체에서 부동 특성이 어떻게 나타나는지 살핀다. 때때로 직원들도 수영장에 들어갈 수 있다. 사람에게 맞게 쓰려면 학과가 수영장 치수를 정해야 한다. 수영장은 직사각형이어야 하며 정사각형이면 안 된다. 표면적 CC는 그곳에서 시험할 알고리즘에 따라 정확히 정해져 있다. 수영장을 짓는 회사는 가능한 변의 길이 목록을 제시했고, 목록의 길이만으로 주어진 넓이의 수영장을 만들 수 있다고 보장한다. 어떤 조합을 쓸지는 학과가 정한다.

목록이 꽤 길어서 학과는 쓸 수 있는 길이를 찾을 주니어 프로그래머를 고용했다. 그는 일을 시작하기 전에 두 가지를 관찰했다. 첫째, 제시된 모든 변의 길이는 소수다. 둘째, 표면적 CC는 서로 다른 두 소수의 곱이다. 이 정보가 적절한 길이를 빠르게 찾는 데 도움이 될 수 있다고 그는 생각한다. 그보다 먼저 이 문제를 풀어 보라.

입력

첫째 줄에 수영장 표면적을 나타내는 정수 CC (1≤C≤10181 \le C \le 10^{18})가 주어진다. 둘째 줄에 회사가 제시한 변의 길이의 개수 MM (1≤M≤2⋅1051 \le M \le 2 \cdot 10^5)이 주어진다. 셋째 줄에 서로 다른 소수 P1,…,PMP_1, \ldots, P_M (1<Pi<1091 < P_i < 10^9)이 공백으로 구분되어 주어진다. 모든 길이는 같은 단위로 표시되어 있다.

출력

제시된 길이 중에서 수영장을 만드는 데 쓸 수 있는 두 변의 길이를 공백으로 구분하여 한 줄에 출력한다. 앞의 길이는 뒤의 길이보다 작아야 한다.

예제1

  1. 예제 1

    입력
    15
    5
    7 2 5 11 3
    
    예상 출력
    3 5