프라이빗 스페이스
시간 제한1초메모리 제한128 MB
가장 넓은 행의 너비 X를 12 이하에서 가장 작게 정해, 너비가 X부터 1까지인 삼각형 좌석 배치에 모든 단체를 앉히되 같은 행의 이웃 단체 사이에는 빈 좌석을 하나 둔다.
문제
사람들은 그룹 단위로(혼자 오는 사람도 있습니다) 영화관에 옵니다. 각 그룹은 자신의 그룹 안에서만 어울리고 싶어 하므로, 같은 줄에 앉은 다른 그룹과의 사이에 최소 한 자리 이상의 빈 좌석을 두려고 합니다. 다만 그룹이 줄의 양쪽 끝 중 한쪽에 앉는 경우에는 그쪽으로는 빈 좌석이 필요하지 않습니다.
영화관은 삼각형 모양입니다. 가장 넓은 줄의 좌석 수가 이면, 각 줄의 좌석 수는 로 한 자리씩 줄어듭니다(폭이 부터 까지인 줄이 각각 하나씩 있습니다). 수용 한계 때문에 가장 넓은 줄의 좌석 수는 최대 입니다.
방문객은 목록 으로 주어집니다. 는 정확히 명으로 이루어진 그룹의 개수입니다. 모든 그룹은 한 줄 안에 앉아야 하며(그룹을 여러 줄로 나눌 수 없습니다), 그룹이 차지하는 좌석은 서로 연속해야 합니다.
위의 '한 자리 이상 비우기' 규칙을 지키면서 모든 그룹을 동시에 앉힐 수 있는, 가장 넓은 줄의 최소 폭 를 구하세요.
입력
첫째 줄에 정수 ()이 주어집니다. 이는 그룹이 가질 수 있는 최대 인원수입니다.
둘째 줄에 개의 정수가 주어집니다. 그중 번째(1부터 시작) 정수는 정확히 명으로 이루어진 그룹의 개수 입니다.
출력
모든 그룹을 앉힐 수 있는 가장 넓은 줄의 최소 폭 를 한 줄에 출력합니다. 부터 까지 어떤 폭으로도 모든 그룹을 앉힐 수 없다면 대신 impossible을 출력합니다.