Problem:
Score : 400 points

Problem Statement

We have N points in a two-dimensional plane.

The coordinates of the i-th point (1 \leq i \leq N) are (x_i,y_i).

Let us consider a rectangle whose sides are parallel to the coordinate axes that contains K or more of the N points in its interior.

Here, points on the sides of the rectangle are considered to be in the interior.

Find the minimum possible area of such a rectangle.

Constraints

2 \leq K \leq N \leq 50

-10^9 \leq x_i,y_i \leq 10^9 (1 \leq i \leq N)

x_i≠x_j (1 \leq i<j \leq N)

y_i≠y_j (1 \leq i<j \leq N)

All input values are integers. (Added at 21:50 JST)

Input

Input is given from Standard Input in the following format:

N K
x_1 y_1
:
x_{N} y_{N}

Output

Print the minimum possible area of a rectangle that satisfies the condition.

Sample Input 1

4 4
1 4
3 3
6 2
8 1

Sample Output 1

21

One rectangle that satisfies the condition with the minimum possible area has the following vertices: (1,1), (8,1), (1,4) and (8,4).

Its area is (8-1) × (4-1) = 21.

Sample Input 2

4 2
0 0
1 1
2 2
3 3

Sample Output 2

1

Sample Input 3

4 3
-1000000000 -1000000000
1000000000 1000000000
-999999999 999999999
999999999 -999999999

Sample Output 3

3999999996000000001

Watch out for integer overflows.

Solution in PHP7 (7.0.15) (judge verdict: Wrong Answer)

<?php
fscanf(STDIN, "%d%d", $N, $K);
for($i = 0; $i < $N; $i++){
  fscanf(STDIN, "%d%d", $x, $y);
  $X[] = $x;$Y[] = $y;
  $mapXY[$x] = $y;
  $mapYX[$y] = $x;
}
$Xs = $X; $Ys = $Y;
$min = 10**19;
sort($Xs);sort($Ys);
for($i = 0; $i < $N; $i++){
  for($j = $i+1; $j < $N; $j++){
    $xi = $Xs[$i];
    $xj = $Xs[$j];

    $yMax = 0;
    $c = 0;
    for($yMin = 0; $yMin < $N-$K+1; $yMin++){
      while($c < $K && $yMax < $N){
        $x = $mapYX[$Ys[$yMax++]];
        if($x >= $xi && $x <= $xj)$c++;
      }
      if($c == $K){
        $a = ($Ys[$yMin]-$Ys[$yMax-1])*($xi-$xj);
        $min = min($a, $min);
      }
      $c--;
    }
  }
}
echo $min;