블록 배치

아직 제출이 없습니다시간 제한4초메모리 제한512 MB

문제

연우는 NN(1N1051 \le N \le 10^5)개의 나무 블록을 갖고 있다. 연우는 이 NN개의 나무 블록을 일렬로 배치해놓았다. 지나가다 우연히 그걸 본 지환은 연우가 한 배치가 너무 엉망이라고 생각했다.

지환은 인접한 나무 블록간의 높이 차이가 작으면 작을수록 좋은 배치라고 생각한다. 지환은 나열된 나무 블록에서 몇 개의 블록을 제거해서 인접한 블록간 높이 차이를 최대한 작게 만들려고 한다. 하지만 너무 많은 블록을 제거하면 연우가 싫어하기 때문에, 최소 XX개 이상의 블록은 남겨두려고 한다.

지환은 이런 조건을 모두 만족하게 블록을 제거하는게 생각보다 쉽지 않은 일이라는 것을 깨닫고 당신에게 도움을 요청했다. 지환을 도와, 블록을 일부 제거해서 최소 XX개 이상의 블록을 남겼을 때 만들 수 있는 인접한 블록간의 최대 높이 차이를 최소화하는 프로그램을 작성하시오.

입력

첫째 줄에 NN, XX가 공백으로 구분되어 주어진다(1XN105 1 \le X \le N \le 10^5).

둘째 줄에 연우가 처음 나열해 둔 나무 블록의 높이가 공백으로 구분되어 NN개 주어진다. 각 높이는 11이상 10910^9 이하의 정수이다.

출력

첫째 줄에 최소 XX개 이상의 블록을 남겨 둔 채 인접한 블록간 높이 차이의 최댓값을 가능한 한 작게 만들었을 때 높이 차이 최댓값을 출력한다.