BS9 - Tìm kiếm nhị phân 9: Kiếm củi
Point: 100.0
Time limit: 1.0s
Memory limit: 610 M
Input: stdin
Output: stdout
Author:  
Problem type
Ngôn ngữ cho phép
C, C#, C++, Java, Pascal, Python, Text

Hùng cần \(M\) mét củi để có thể vượt qua mùa đông giá rét nhưng Hùng cũng không muốn kiếm củi một cách bình thường. Hùng kiếm củi theo quy tắc như sau: Anh đặt tham số chiều cao \(H\), sau đó anh sẽ lấy những cành củi có độ dài lớn hơn \(H\) và cắt bỏ đi phần thừa sao cho cành cây còn lại \(H\) mét (tất nhiên là những cành củi không dài hơn \(H\) mét vẫn còn nguyên). Hùng sau đó sẽ lấy những phần gỗ đã bị cắt ra. Ví dụ: Nếu các cành củi có các độ dài 20, 15, 10, 17 và \(H\) 15, độ dài còn lại của các cành củi sau khi cắt sẽ lần lượt là 15, 15, 10, 15, và Hùng sẽ thu được 7 mét (5 từ cành thứ nhất và 2 từ cành thứ tư).

Yêu cầu

Xác định độ dài \(H\) lớn nhất, thoả mãn khi cắt bỏ phân thừa của những cành dài hơn \(H\) mét, Hùng sẽ có ít nhất \(M\) mét củi.

Dữ liệu

  • Dòng đầu tiên là hai số nguyên \(N\) - số cây \(M\) - lượng củi mà Hùng cần \((1 \leq N \leq 10^6)\)
  • Dòng thứ hai chứa \(N\) số nguyên không vượt quá \(10^9\), là chiều dài của các cành củi.
  • Dữ liệu đảm bảo tổng chiều dài của các cành củi sẽ không nhỏ hơn \(M\), điều đó có nghĩa là Hùng sẽ luôn có phương án thực hiện thành công.

INPUT

4 7
20 15 10 17

OUTPUT

15