using System;
using System.Collections.Generic;
using System.Linq;

class Program
{
    static string InputPattern = "InputX";

    static List<string> GetInputList()
    {
        var WillReturn = new List<string>();

        if (InputPattern == "Input1") {
            WillReturn.Add("4 4");
            WillReturn.Add("1 4");
            WillReturn.Add("3 3");
            WillReturn.Add("6 2");
            WillReturn.Add("8 1");
            //21
        }
        else if (InputPattern == "Input2") {
            WillReturn.Add("4 2");
            WillReturn.Add("0 0");
            WillReturn.Add("1 1");
            WillReturn.Add("2 2");
            WillReturn.Add("3 3");
            //1
        }
        else if (InputPattern == "Input3") {
            WillReturn.Add("4 3");
            WillReturn.Add("-1000000000 -1000000000");
            WillReturn.Add("1000000000 1000000000");
            WillReturn.Add("-999999999 999999999");
            WillReturn.Add("999999999 -999999999");
            //3999999996000000001
        }
        else {
            string wkStr;
            while ((wkStr = Console.ReadLine()) != null) WillReturn.Add(wkStr);
        }
        return WillReturn;
    }

    struct XYInfo
    {
        internal int X;
        internal int Y;
    }

    struct KouhoInfo
    {
        internal int XFrom;
        internal int XTo;
        internal int YFrom;
        internal int YTo;
    }

    static void Main()
    {
        List<string> InputList = GetInputList();

        int[] wkArr = { };
        Action<string> SplitAct = pStr =>
            wkArr = pStr.Split(' ').Select(X => int.Parse(X)).ToArray();

        SplitAct(InputList[0]);
        int K = wkArr[1];

        var XYList = new List<XYInfo>();
        foreach (string EachStr in InputList.Skip(1)) {
            SplitAct(EachStr);
            XYInfo WillAdd;
            WillAdd.X = wkArr[0];
            WillAdd.Y = wkArr[1];
            XYList.Add(WillAdd);
        }
        //X座標の昇順にソートしておく
        XYList.Sort((A, B) => A.X.CompareTo(B.X));
        int UB = XYList.Count - 1;

        var KouhoList = new List<KouhoInfo>();
        for (int LoopI = 0; LoopI <= UB; LoopI++) {
            for (int LoopJ = LoopI; LoopJ <= UB; LoopJ++) {
                for (int LoopK = 0; LoopK <= UB; LoopK++) {
                    for (int LoopL = 0; LoopL <= UB; LoopL++) {
                        if (XYList[LoopK].Y > XYList[LoopL].Y) continue;

                        KouhoInfo WillAdd;
                        WillAdd.XFrom = XYList[LoopI].X;
                        WillAdd.XTo = XYList[LoopJ].X;
                        WillAdd.YFrom = XYList[LoopK].Y;
                        WillAdd.YTo = XYList[LoopL].Y;
                        KouhoList.Add(WillAdd);
                    }
                }
            }
        }

        //foreach (KouhoInfo EachKouho in KouhoList) {
        //    Console.WriteLine("({0},{1})-({2},{3})",
        //        EachKouho.XFrom, EachKouho.XTo, EachKouho.YFrom, EachKouho.YTo);
        //}

        long AnswerMenseki = long.MaxValue;
        foreach (KouhoInfo EachKouho in KouhoList) {
            int NaihouCnt = 0;
            foreach (XYInfo EachXY in XYList) {
                if (EachKouho.XFrom <= EachXY.X && EachXY.X <= EachKouho.XTo
                && EachKouho.YFrom <= EachXY.Y && EachXY.Y <= EachKouho.YTo) {
                    NaihouCnt++;
                }
            }
            if (NaihouCnt >= K) {
                long Width = Math.Abs(EachKouho.XTo - EachKouho.XFrom);
                long Height = Math.Abs(EachKouho.YTo - EachKouho.YFrom);

                long CurrMenseki = Width * Height;
                if (AnswerMenseki > CurrMenseki) {
                    AnswerMenseki = CurrMenseki;
                }
            }
        }
        Console.WriteLine(AnswerMenseki);
    }
}


Measured memory_bytes: 56604