#include <bits/stdc++.h>
using namespace std;
const int maxn=50;
const long long maxl=1000000000;
long long sx=maxl+1,bx=-maxl-1,sy=maxl+1,by=-maxl-1;
long long x[maxn+1],y[maxn+1];
int n,k;
long long ans=(maxl*2+1)*(maxl*2+1);
void dfs(int p,int c){
	if(c+n-(p-1)<k)return;
	long long ar=(bx-sx)*(by-sy);
	if(c>0&&ar>=ans)return;
	if(p==n+1){
		ans=min(ans,ar);
		return;
	}
	//point p not chosen
	dfs(p+1,c);
	
	//point p chosen
	long long _sx=sx,_bx=bx,_sy=sy,_by=by;
	sx=min(sx,x[p]);bx=max(bx,x[p]);
	sy=min(sy,y[p]);by=max(by,y[p]);
	dfs(p+1,c+1);
	sx=_sx;bx=_bx;sy=_sy;by=_by;
}
	
int main(){
	scanf("%d%d",&n,&k);
	for(int i=1;i<=n;++i)scanf("%lld%lld",&x[i],&y[i]);
	dfs(1,0);
	printf("%lld",ans);
	return 0;
}
