비례대표 득표수

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

문제

JAG 왕국이 의회 의원을 뽑는 선거를 치렀다. 이 나라는 정당명부식 비례대표제만 쓴다. 유권자는 정당 하나에 투표하고, 각 정당이 얻는 의석수는 득표수에 비례한다. 의회의 총 의석수는 정수이므로 정확히 비례하게 나누기는 대개 불가능하다. JAG 왕국은 동트 방식으로 의석을 나눈다.

정당마다 후보는 무제한이고, 한 정당의 후보에는 순서가 있다. xx표를 얻은 정당의 yy번째 후보에게 값 xy\dfrac{x}{y}를 준다. 모든 후보를 값이 큰 순서로 정렬한 다음 앞에서 TT명이 당선된다. TT는 총 의석수이고, 한 정당의 의석수는 그 정당에서 당선된 후보의 수다.

득표수가 각각 4040, 6060, 3030인 정당 셋을 예로 들자. 총 의석수가 T=9T = 9이면 첫 번째 정당이 33석, 두 번째 정당이 44석, 세 번째 정당이 22석을 얻는다.

값이 같은 후보는 추첨으로 가르므로, 값이 같은 후보는 모두 당선될 가능성이 있다. 같은 예에서 T=5T = 5이면 값이 2020인 후보 둘이 동점이고, 다음 두 결과가 모두 나올 수 있다.

  • 첫 번째 정당이 22석, 두 번째 정당이 22석, 세 번째 정당이 11석을 얻는다.
  • 첫 번째 정당이 11석, 두 번째 정당이 33석, 세 번째 정당이 11석을 얻는다.

당신은 방금 방송으로 선거 결과를 들었다. 총 유효 투표수와 각 정당이 얻은 의석수를 알고 나니 각 정당이 몇 표를 받았는지 궁금해졌다.

총 유효 투표수 NN, 정당 수 MM, ii번째 정당이 얻은 의석수 SiS_i가 주어진다. 각 정당이 받았을 수 있는 최소 득표수와 최대 득표수를 구하라. 입력에 따라서는 주어진 의석수를 만들어 내는 득표 상황이 아예 없기도 하다.

입력

첫째 줄에 총 유효 투표수 NN (1N1091 \le N \le 10^9)과 정당 수 MM (1M300001 \le M \le 30000)이 주어진다. 다음 MM개 줄의 ii번째 줄에는 ii번째 정당이 얻은 의석수 SiS_i (0Si300000 \le S_i \le 30000)가 주어진다. Si0S_i \ne 0ii가 적어도 하나 있다.

출력

주어진 NN, MM, SiS_i를 만들어 내는 득표 상황이 없으면 impossible을 출력한다. 그렇지 않으면 MM개 줄을 출력한다. ii번째 줄에는 ii번째 정당이 받았을 수 있는 최소 득표수와 최대 득표수를 두 정수로 출력한다.