let inf = max_int
let rec for_fold a b f v = if a >= b then v else for_fold (a+1) b f (f v a)
let for_fold_min a b f = for_fold a b (fun x y -> min x (f y)) inf

let () =
  Scanf.scanf "%d %d" @@ fun n k ->
  let c = Array.init n (fun _ -> Scanf.scanf " %d %d" (fun x y -> x, y)) in

  let xs = Array.map fst c in Array.sort (-) xs;
  let ys = Array.map snd c in Array.sort (-) ys;

  for_fold_min 0 n (fun i ->
    let ly = ys.(i) in
    for_fold_min i n (fun j ->
      let uy = ys.(j) in
      for_fold_min 0 n (fun h ->
        let lx = xs.(h) in

        let m, ux = Array.fold_left (fun (s, tx) (x, y) ->
          if ly <= y && y <= uy && lx <= x then
            (s+1, if s >= k then tx else max tx x)
          else
            (s, tx)) (0, -1) c
        in

        if m >= k then ((ux-lx)*(uy-ly)) else inf)))
  |> Printf.printf "%d\n"