import java.io.{BufferedReader, IOException, InputStream, InputStreamReader}
import java.util.StringTokenizer

import scala.collection.mutable
import scala.util.Sorting
import math.{min, max, abs}

object Main {
  def solve(): Unit = {
    val sc = new InputReader(System.in)
    val N = sc.nextInt()
    val K = sc.nextInt()

    val c = Array.fill(N)((sc.nextLong(), sc.nextLong()))
    Sorting.quickSort(c)(Ordering.by((_: (Long, Long))._1)) // xのascでソート

    var ans = Long.MaxValue
    (0 to N - K) foreach { i =>
      val x = c(i + K - 1)._1 - c(i)._1
      val ys = (0 until K) map (j => c(i + j)._2)
      val y = ys.max - ys.min
      ans = min(ans, x * y)
    }

    println(ans)
  }

  def main(args: Array[String]): Unit = {
    solve()
  }

  class InputReader(val stream: InputStream) {
    val reader = new BufferedReader(new InputStreamReader(stream), 32768)
    var tokenizer: StringTokenizer = null

    def next: String = {
      while (tokenizer == null || !tokenizer.hasMoreTokens)
        tokenizer = new StringTokenizer(reader.readLine)
      tokenizer.nextToken
    }

    def nextInt(): Int = next.toInt
    def nextLong(): Long = next.toLong
    def nextChar(): Char = next.charAt(0)
  }

}
