import java.util.*; import java.io.*; public class travis { public static void main(String[] Args) throws Exception { FS sc = new FS(System.in); int n = sc.nextInt(); int k = sc.nextInt(); Long[] arr = new Long[n]; Long[] arr2 = new Long[n]; for (int i = 0; i < n; i++) { arr[i] = sc.nextLong(); } Arrays.sort(arr); for (int i = 0; i < n; i++) { arr2[i] = arr[i] * arr[i]; } long sum = 0; long sum2 = 0; for (int i = 0; i < k; i++) { sum += arr[i]; sum2 += arr2[i]; } // default the answer to something really big double ans = 1000000000; ans *= ans; for (int i = 0; i + k <= n; i++) { double mu = sum; mu /= k; double tans = sum2 - (2 * mu * sum) + (k * mu * mu); if (tans < ans) ans = tans; if (i + k != n) { sum -= arr[i]; sum2 -= arr2[i]; sum += arr[i+k]; sum2 += arr2[i+k]; } } System.out.println(ans); } public static class FS { BufferedReader br; StringTokenizer st; FS(InputStream in) throws Exception { br = new BufferedReader(new InputStreamReader(in)); st = new StringTokenizer(br.readLine()); } String next() throws Exception { if (st.hasMoreTokens()) return st.nextToken(); st = new StringTokenizer(br.readLine()); return next(); } int nextInt() throws Exception { return Integer.parseInt(next()); } long nextLong() throws Exception { return Long.parseLong(next()); } } }