아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

폭발물 적재

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

요약
각 트럭 용량을 무한히 생산 가능한 폭약 크기로 정확히 채우는 최소 개수를 구하고 불가능하면 NIE를 출력합니다.
난이도

어려움10점 중 8점

유형
최단 경로, 수학, 정수론
정답자
아직 제출이 없습니다

문제

당신은 폭발물을 운송하는 계약을 맡았다. 트럭이 nn대 있고, ii번째 트럭의 적재 용량은 xix_i이다.

각 트럭을 폭발물로 어떻게 채울지 계획해야 한다. 모든 트럭은 폭발물로 빈틈없이 정확히 가득 채워야 한다. 그렇지 않으면 운송 도중 폭발물이 손상될 수 있기 때문이다. 사용할 수 있는 폭발물은 크기가 서로 다른 kk가지 종류가 있으며, ii번째 종류의 크기는 yiy_i이다. 각 종류의 폭발물은 필요한 만큼 얼마든지 만들 수 있다. 트럭을 싣고 내리는 속도 때문에, 트럭 하나를 채우는 데 사용하는 폭발물의 개수를 최대한 줄이고 싶다.

각 트럭에 대해, 빈틈없이 정확히 채우는 데 필요한 폭발물의 최소 개수를 구하여라.

입력

첫째 줄에 트럭의 수 nn과 폭발물 종류의 수 kk가 주어진다 (1≤n≤10001 \le n \le 1000, 1≤k≤1001 \le k \le 100). 이어지는 kk개의 줄에는 각 폭발물 종류의 크기 yiy_i가 한 줄에 하나씩 주어진다 (1≤yi<1051 \le y_i < 10^5). 서로 다른 두 종류의 크기는 항상 다르다. 이어지는 nn개의 줄에는 각 트럭의 적재 용량 xix_i가 한 줄에 하나씩 주어진다 (1010≤xi≤101710^{10} \le x_i \le 10^{17}).

출력

nn개의 줄에 걸쳐, ii번째 줄에는 ii번째 트럭을 빈틈없이 정확히 채우는 데 필요한 폭발물의 최소 개수 wiw_i를 출력한다. 정확히 채우는 것이 불가능하면 그 줄에 NIE를 출력한다.

예제3

  1. 예제 1

    입력
    3 2
    10000
    10100
    10000000000
    10000000001
    10000000002
    
    예상 출력
    990100
    NIE
    NIE
    
  2. 예제 2

    입력
    2 1
    7
    10000000003
    10000000000
    
    예상 출력
    1428571429
    NIE
    
  3. 예제 3

    입력
    1 2
    2
    5
    10000000001
    
    예상 출력
    2000000002