Điều hướng chính

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Máy ATM phát tiền

Dễ Duyệt Đệ quy quay lui

  • 100 Điểm
  • 100% Tỉ lệ AC
  • 1 Số AC
  • 500M Bộ nhớ giới hạn
  • 1.0s Giới hạn thời gian

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

Chưa có bình luận nào.