#include <cstdio>
#include <iostream>
#include <algorithm>
#define INF 2000000000
using namespace std;
struct punct{
int x,y;
};
punct v[301];
int d[301][301];
int sus[301],jos[301];
int cmp (punct a,punct b){
if (a.x!=b.x)
return a.x<b.x;
return a.y<b.y;
}
int modul (int x){
if (x<0)
return -x;
return x;
}
int arie (int a,int b,int c){
return modul ((v[b].x-v[a].x) * (v[c].y-v[a].y) - (v[c].x-v[a].x) * (v[b].y-v[a].y));
}
int puncte (int i,int j,int k){
int a,b,c;
if (!cmp(v[i],v[j]))
swap(i,j);
if (!cmp(v[i],v[k]))
swap(i,k);
if (!cmp(v[j],v[k]))
swap(j,k);
a=v[i].y-v[j].y;
b=v[j].x-v[i].x;
c=v[i].x*(-a)-v[i].y*b;
if (v[k].x * a + v[k].y * b + c<0 || v[j].x==v[i].x) /// caz cu varful in jos
return (d[i][j]+d[j][k]-d[i][k]);
else /// caz cu varful in sus
return (d[i][k]-d[i][j]-d[j][k]- (v[j].x<v[k].x) );
}
int main()
{
FILE *fin=fopen ("popandai.in","r");
FILE *fout=fopen ("popandai.out","w");
int n,i,j,a,b,c,kk,k,sol,nrp,ar;
fscanf (fin,"%d%d",&n,&kk);
for (i=1;i<=n;i++)
fscanf (fin,"%d%d",&v[i].x,&v[i].y);
sort (v+1,v+n+1,cmp); /// sort dupa x
/// d[i][j] = cate puncte sunt sub segmentul i j
for (i=1;i<n;i++){
for (j=i+1;j<=n;j++){
a=v[i].y-v[j].y;
b=v[j].x-v[i].x;
c=v[i].x*(-a)-v[i].y*b;
for (k=1;k<=n;k++){
if (k==i || k==j || v[k].x<v[i].x || v[k].x>=v[j].x)
continue;
else if (v[k].x * a + v[k].y * b + c<0){ /// k e sub segmentul i j
d[i][j]++;
d[j][i]++;
}
}
//printf ("%d %d %d %d %d\n",v[i].x,v[i].y,v[j].x,v[j].y,d[i][j]);
}
}
/// acum incepe rezolvarea
sol=INF;
for (i=1;i<=n;i++){
for (j=i+1;j<n;j++){
// if (i==6)
// printf ("a");
for (k=0;k<=kk;k++)
sus[k]=jos[k]=INF;
for (k=1;k<=n;k++){
if (k==i || k==j)
continue;
//if (puncte(i,j,k)<0)
// printf ("%d\n",puncte(i,j,k));
nrp=puncte (i,j,k); /// returneaza nr de puncte din triunghiul i j k
ar=arie (i,j,k);
a=v[i].y-v[j].y;
b=v[j].x-v[i].x;
c=v[i].x*(-a)-v[i].y*b;
if (v[k].x * a + v[k].y * b + c<0)
jos[nrp]=min(jos[nrp],ar);
else sus[nrp]=min(sus[nrp],ar);
}
for (k=kk;k;k--){
jos[k]=min(jos[k],jos[k+1]);
sus[k]=min(sus[k],sus[k+1]);
}
for (k=0;k<=kk;k++){
//printf ("%d %d\n",jos[k],sus[k]);
if (jos[k]!=INF && sus[kk-k]!=INF)
sol=min(sol,jos[k]+sus[kk-k]);
}
}
}
fprintf (fout,"%.1lf",(sol*1.0)/2);
return 0;
}