import java.io.BufferedInputStream; import java.util.Arrays; import java.util.Scanner; public class Main { private static final int XMAX = (int) 1e9; public static void main(String[] args) { Scanner scanner = new Scanner(new BufferedInputStream(System.in)); int N = scanner.nextInt(), C = scanner.nextInt(); scanner.nextLine(); int[] stalls = new int[N]; for (int i = 0; i < N; i++) { stalls[i] = Integer.parseInt(scanner.nextLine()); } Arrays.sort(stalls); int beg = 0, end = stalls[N - 1] - stalls[0]; while (1 < end - beg) { int mid = beg + (end - beg) / 2; if (isValid(stalls, N, C, mid)) { beg = mid; } else { end = mid; } } System.out.println(beg); scanner.close(); } private static boolean isValid(int[] stalls, int N, int C, int dist) { int prev = -XMAX; for (int stall : stalls) { if (dist <= stall - prev) { if (--C == 0) break; prev = stall; } } return C == 0; } }