만드는 중입니다

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

오백나한도

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

요약
아라한마다 정해진 보폭으로 걸어서 총 거리가 정확히 K가 되는 걸음 수를 찾습니다. 가능한 방법이 없으면 -1을 출력합니다.
난이도

보통10점 중 6점

유형
정수론, 동적 계획법, 최단 경로
정답자
아직 제출이 없습니다

문제

국보 제1883호로 지정된 고려 오백나한도에는 깨달음을 얻은 나한 500명의 모습이 그려져 있다. 역사에 관심이 많은 한별이는 이 그림이 마음에 들어 방에 걸어 두고 잠이 들었다. 그날 밤 한별이는 기묘한 꿈을 꾸었다. 오백 명의 나한을 만난 것이다. 나한들과 즐겁게 시간을 보내던 한별이는 나한들의 발걸음을 살피다가 특이한 점을 발견했다. 각 나한의 보폭은 자연수이고 나한마다 항상 일정하다. 다만 서로 다른 두 나한의 보폭은 같을 수도 있고 다를 수도 있다.

프로그래머로서 호기심이 많은 한별이에게 궁금증이 생겼다.

나한들이 걸은 이동거리의 총합이 KK가 되도록 하는 방법이 있을까?

한별이의 궁금증을 풀기 위해, 나한들이 걷는 방법이 존재하는지 판별하고, 존재한다면 그 실례를 찾아 주자.

입력

첫째 줄에 나한들의 수 nn과 이동거리의 총합 KK가 주어진다. 둘째 줄부터 n+1n+1번째 줄까지 ii번째 줄에는 i−1i-1번째 나한의 보폭을 나타내는 정수 aia_i가 주어진다.

출력

나한들이 어떻게 걸어도 이동거리의 총합을 KK로 만들 수 없으면 −1-1을 출력한다. 그렇지 않으면 음이 아닌 정수 nn개를 출력한다. 각 정수는 나한들이 걸은 횟수를 뜻하며, 문제의 조건을 만족해야 한다.

제한

  • 1≤n≤5001\le n\le 500
  • 1≤K≤10181\le K\le 10^{18}
  • 1≤ai≤2500001\le a_i \le 250000

예제2

  1. 예제 1

    입력
    3 10
    1 2 4
    
    예상 출력
    0 1 2
    
  2. 예제 2

    입력
    5 9
    2 4 6 8 10
    
    예상 출력
    -1