10110 블록 쌓기 Gold V

시간 제한: 1초 메모리 제한: 256MB

문제

N가지 종류의 블록이 있다. i번째 블록의 높이는 H_i이며, 각 종류의 블록은 무한히 많다. 블록을 위로 쌓아서 정확히 높이 K의 탑을 만들려 한다. 탑의 높이는 사용한 블록들의 높이의 합이다.

정확히 높이 K인 탑을 만들 때 필요한 블록의 최소 개수를 구하시오. 불가능하면 -1을 출력한다.

입력

첫째 줄에 N (1 ≤ N ≤ 100)과 K (1 ≤ K ≤ 10,000)가 주어진다.

다음 N개의 줄에 각 블록의 높이 H_i가 주어진다. (1 ≤ H_i ≤ 10,000)

출력

필요한 블록의 최소 개수를 출력한다. 불가능하면 -1을 출력한다.

예제 입출력

예제 입력 1
3 7
2
3
5
예제 출력 1
2
예제 입력 2
4 10
3
6
7
9
예제 출력 2
-1
예제 입력 3
2 6
2
4
예제 출력 3
2
solution.cpp
에디터 불러오는 중...