#include <fstream>
#include <iostream>
#include <algorithm>
#define DIM 310
#define INF 4000000000LL
#define x first
#define y second
using namespace std;
long long det(long long X1, long long Y1, long long X2, long long Y2, long long X3, long long Y3) {
return (X2-X1)*(Y3-Y1) - (X3-X1)*(Y2-Y1);
}
long long n, i, j, k, K, sol, aria, puncte, t, isol, jsol;
pair<long long, long long> v[DIM];
long long a[DIM][DIM], sub[DIM], sus[DIM], jos[DIM];
long long getPoints(pair<long long, long long> i, pair<long long, long long> j, pair<long long, long long> k, long long pi, long long pj, long long pk) {
long long puncte = 0;
if (i > j)
swap(i, j), swap(pi, pj);
if (i > k)
swap(i, k), swap(pi, pk);
if (j < k)
swap(j, k), swap(pj, pk);
if (det(i.x, i.y, j.x, j.y, k.x, k.y) < 0) {
/// k este sub
if (sub[pi] != pk && sub[pj] != pk) {
puncte = a[pi][pj] - a[pi][pk] - a[pk][pj] - 1;
if (sub[pk])
puncte++;
} else
if (sub[pi] == pk) {
puncte = a[pi][pj] - a[pk][pj] - 1;
} else
puncte = a[pi][pj] - a[pi][pk] - 1;
} else
if (det(i.x, i.y, j.x, j.y, k.x, k.y) > 0) {
if (sub[pk] != pi && sub[pk] != pj) {
puncte = a[pi][pk] + a[pk][pj] - a[pi][pj];
if (sub[pk] && det(i.x, i.y, j.x, j.y, v[ sub[pk] ].x, v[ sub[pk] ].y) < 0)
puncte--;
} else
if (sub[pk] == pi)
puncte = a[pk][pj] - a[pi][pj] - 1;
else
puncte = a[pi][pk] - a[pi][pj] - 1;
}
return puncte;
}
inline long long modul(long long x) {
return (x > 0 ? x : -x);
}
int main (){
ifstream fin ("popandai.in");
ofstream fout("popandai.out");
//cout<<det(0, 0, 1, 0, 1, -1);
fin>>n>>K;
for (i=1;i<=n;i++)
fin>>v[i].x>>v[i].y;
//for (i=1;i<=n;i++)
// cout<<v[i].x<<" "<<v[i].y<<"\n";
sol = INF;
sort(v+1, v+n+1);
for (i=1;i<n;i++)
for (j=i+1;j<=n;j++) {
a[i][j] = 0;
for (k=1;k<=n;k++) {
if ((v[k].x - v[i].x) * (v[k].x - v[j].x) <= 0 &&
(v[k].y - v[i].y) * (v[k].y - v[j].y) <= 0 &&
det(v[i].x, v[i].y, v[j].x, v[j].y, v[k].x, v[k].y) == 0
) {
continue;
}
long long aux;
if ((aux = det(v[i].x, v[i].y, v[j].x, v[j].y, v[k].x, v[k].y)) < 0 &&
(v[k].x - v[i].x) * (v[k].x - v[j].x) <= 0) {
a[i][j]++;
continue;
}
}
a[j][i] = a[i][j];
if (v[i].x == v[j].x) {
if (v[i].y < v[j].y)
sub[j]= i;
else
if (v[j].y < v[i].y)
sub[i] = j;
}
}
/*
for (i=1;i<=n;i++) {
for (j=1;j<=n;j++)
cout<<a[i][j]<<" ";
cout<<"\n";
}
*/
for (i=1;i<n;i++)
for (j=i+1;j<=n;j++) {
for (k=0;k<=n+1;k++)
sus[k] = jos[k] = INF;
for (k=1;k<=n;k++){
if (k == i || k == j)
continue;
aria = modul( det(v[i].x, v[i].y, v[j].x, v[j].y, v[k].x, v[k].y) );
puncte = getPoints(v[i], v[j], v[k], i, j, k);
if (puncte < 0)
cout<<puncte<<"\n";
if (det(v[i].x, v[i].y, v[j].x, v[j].y, v[k].x, v[k].y) < 0) {
jos[puncte] = min(jos[puncte], aria);
} else {
sus[puncte] = min(sus[puncte], aria);
}
}
for (k=n-1;k>=0;k--) {
sus[k] = min(sus[k], sus[k+1]);
jos[k] = min(jos[k], jos[k+1]);
}
for (t = 0; t<=K; t++) {
if (sus[t] + jos[K-t] < sol) {
sol = sus[t] + jos[K-t];
isol = i;
jsol = j;
}
if (jos[t] + sus[K-t] < sol) {
sol = jos[t] + sus[K-t];
isol = i;
jsol = j;
}
// sol = min(sol, sus[t] + jos[K-t]);
// sol = min(sol, jos[t] + sus[K-t]);
}
}
fout<<sol/2;
if (sol % 2 == 0)
fout<<".0\n";
else
fout<<".5\n";
cout<<isol<<" "<<jsol;
return 0;
}