/*
TASK:stairs
LANG:C++
*/

#include<stdio.h>
#include<iostream>
#include<fstream>
#include<vector>
using namespace std;
struct asd{
   double w;
   double h;
};
vector<asd>a;
int i,j,n,k;
double ans=0;
void init(){
   ifstream inp("inp2.txt");
   cin>>n>>k;
   asd t;
   for(i=1;i<=n;i++){
      cin>>t.h>>t.w;
      a.push_back(t);
   }
}
void solve(){
	vector<asd>::iterator it;
	bool ref=0;int tt=n-k;
double s=0,cur=0;
	for(i=1;i<=tt;i++){
		
		int p=0;
		if(a.size()>1)s=a[0].w*a[1].h;

		for(j=1;j<=a.size()-2;j++){
			cur=a[j].w*a[j+1].h;
			if(s>cur){p=j;s=cur;}
		}
		ans+=s;;
		if(a.size()>1){
			it=a.begin();
			a[p].w+=a[p+1].w;
			a[p].h+=a[p+1].h;
			a.erase(it+p+1);
		}	
	}
}
int main(){ 
   init();
   solve();
   //for(int ii=0;ii<a.size();ii++)printf("(%f %f)",a[ii].w,a[ii].h);
  printf("%0.3f\n",ans);
        return 0;
}

