Trạng thái

Trong siêu thị có \(n\) đồ vật, đồ vật thứ \(i\) có trọng lượng là \(w[i]\). Các mặt hàng ở đây có thể coi số lượng là vô hạn.

Một tên trộm đột nhập vào siêu thị, tên trộm mang một cái túi có thể chứa tối đa là \(M\). Tên trộm rất tham lam nên muốn lấy đủ trọng lượng tối đa của túi. Tuy nhiên tên trộm muốn lấy ít đồ nhất.

Yêu cầu:

  • Hãy chọn ít các vật nhất sao cho trọng lượng đúng bằng \(M\). Mỗi vật có thể được nhiều lần.

Dữ liệu vào

  • Dòng đầu tiên chứa hai số nguyên dương \(n\)\(M\).
  • Dòng thứ 2 chứa \(n\) số nguyên dương \(w[i]\).

Dữ liệu ra

  • Ghi ra số đồ vật ít nhất mà tên trọng cần lấy hoặc là \(-1\) nếu không có cách nào.

Ràng buộc

  • \(1\le n\le 100\)
  • \(1\le M, w[i]\le 10^6\)

Sample Input

3 11
1 5 7

Sample Output

3

Giải thích

  • \(11 = 5 + 5 + 1\)
Thông tin
Thông tin bài tập
Gửi bài giải
Điểm
100
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
977 M
I/O
stdin -> stdout
Tác giả
Loại đề bài
Quy hoạch động: Cái túi
Ngôn ngữ cho phép
C, C#, C++, Java, Pascal, Python, Text