Một máy ATM đang chứa \(n\) tờ tiền, tờ thứ \(i\) có mệnh giá \(T_i\) (các tờ được đánh số từ \(1\) đến \(n\), hai tờ khác nhau có thể cùng mệnh giá). Khách hàng muốn rút đúng \(M\) đồng. Máy chỉ được phát một số tờ tiền có sẵn (mỗi tờ dùng tối đa một lần) sao cho tổng mệnh giá các tờ phát ra đúng bằng \(M\).
Hãy cho biết máy sẽ phát những tờ nào. Nếu không thể phát đủ đúng \(M\) đồng thì máy in ra thông báo khongtherut.
Để đáp án là duy nhất, hãy chọn cách phát mà dãy chỉ số các tờ tiền được phát (sắp tăng dần) nhỏ nhất theo thứ tự từ điển.
Input
- Dòng đầu tiên gồm hai số nguyên dương \(n\) và \(M\).
- Dòng thứ hai gồm \(n\) số nguyên dương \(T_1, T_2, \dots, T_n\).
Output
- Nếu không có cách phát nào, in ra
khongtherut. - Ngược lại, dòng đầu in số lượng tờ tiền được phát, dòng thứ hai in chỉ số của các tờ đó theo thứ tự tăng dần, cách nhau một dấu cách.
Constraints
- \(1 \le n \le 22\)
- \(1 \le M \le 10^{12}\)
- \(1 \le T_i \le 10^9\)
Sample Input
6 9000
2000 5000 1000 3000 4000 1000
Sample Output
4
1 2 3 6
Explanation
Các tờ số \(1, 2, 3, 6\) có mệnh giá \(2000 + 5000 + 1000 + 1000 = 9000\). Không có tập chỉ số nào nhỏ hơn theo thứ tự từ điển cho đúng \(9000\) đồng.
Bình luận
Đăng nhập để bình luận
Chưa có bình luận nào.