울타리

100 이하의 널빤지 중에서 합이 정확히 L이 되는 최소 개수를 구하고 만들 수 없으면 IMPOSSIBLE을 출력합니다.

보통7동적 계획법정수론그리디아직 제출이 없습니다시간 제한5초메모리 제한512 MB

문제

아주 긴 울타리를 세우려고 한다. 세울 자리는 이미 골라 두었고, 이제 재료만 모으면 된다.

동네 목재상에서는 여러 길이의 판자를 원하는 만큼 살 수 있다. 자재를 남기지 않으려면 사 온 판자의 길이 합이 울타리 길이와 정확히 같아야 한다.

울타리의 길이와 살 수 있는 판자 길이가 주어질 때, 길이 합을 정확히 맞추려면 판자를 최소 몇 개 사야 하는지 구하여라.

울타리가 아주 길다는 점에 주의하여라.

입력

첫 줄에 테스트 케이스의 개수 TT가 주어진다. 다음 줄부터 TT개의 테스트 케이스가 이어진다.

각 테스트 케이스는 두 줄이다. 첫 줄에는 울타리의 전체 길이 LL과 살 수 있는 판자 길이의 가짓수 NN이 공백으로 구분되어 주어진다. 둘째 줄에는 살 수 있는 판자 길이 B1,B2,,BNB_1, B_2, \dots, B_N이 공백으로 구분되어 주어진다.

제한

  • 1T501 \le T \le 50
  • 1010L101810^{10} \le L \le 10^{18}
  • 1N1001 \le N \le 100
  • 1Bi1001 \le B_i \le 100

출력

각 테스트 케이스마다 "Case #x: M" 형식으로 한 줄씩 출력한다. xx는 1부터 시작하는 테스트 케이스 번호이고, MM은 다음과 같다.

  • 길이의 합이 정확히 LL이 되도록 판자를 한 개 이상 살 수 있으면, MM은 이때 필요한 판자의 최소 개수이다.
  • 그렇지 않으면 MM은 문자열 "IMPOSSIBLE"이다.

힌트

예제의 첫 번째 케이스에서는 길이 23인 판자 2개, 길이 51인 판자 5개, 길이 100인 판자 99999997개를 쓰는 것이 최선이다. 길이 100인 판자만 100000001개 사면 합이 LL보다 커지는데, 그런 방법은 허용되지 않는다.

예제의 두 번째 케이스에서는 짝수 길이만 만들 수 있다.