#include <algorithm>
#include <iostream>
#include <iomanip>
#include <cassert>
#include <cstring>
using namespace std;

using flt=long long;
#define clamp(x,l,r) (x<l?l:x>r?r:x)
const int e3=1000;

#pragma GCC optimize ("Ofast")
#pragma GCC target ("avx2")



int main() { /* CURSOR START */
	ios_base::sync_with_stdio(0); cin.tie(0);
	const int N=100<<10;
	int n,K; cin>>n>>K;
	static flt p[N];
	static int d[N];
	for(int i=1;i<=n;i++) cin>>p[i]>>d[i];

	assert(n==clamp(n,1,100*e3) && K==clamp(K,1,100*e3));
	d[0]=-1;
	d[n+1]=d[n]+1;
	for(int i=1;i<=n;i++) assert(p[i]==clamp(p[i],1,100) && d[i]==clamp(d[i],0,8*e3*e3) && d[i]>d[i-1]);

	for(int i=1;i<=n;i++) p[i]<<=30;

	static flt pfx[N],sfx[N];
	pfx[0]=sfx[n+1]=0;
	for(int i=1;i<=n;i++) pfx[i]=(pfx[i-1]>>(d[i]-d[i-1]))+p[i];
	for(int i=n;i>=1;i--) sfx[i]=(sfx[i+1]>>(d[i+1]-d[i]))+p[i];
	static flt add[N][61];
	for(int r=1;r<=n;r++) for(int l=max(1,r-60);l<=r;l++) {
			add[r][r-l]=0;
			if(d[r]-d[l]>60) continue;
			for(int i=l;i<=r;i++) {
				flt lef=pfx[i]-(pfx[l-1]>>(d[i]-d[l-1]));
				flt rig=sfx[i]-(sfx[r+1]>>(d[r+1]-d[i]));
				add[r][r-l]=max(add[r][r-l],lef+rig-p[i]);
			}
		}

	int ml=max(n/2-30,1);
	int mr=min(n/2+30,n);
	assert(1<=ml && ml<=mr && mr<=n && mr-ml<=60);

	static flt dpl[64][N];
	for(int i=1;i<=mr;i++) {
		flt *ndp=dpl[i&63];
		memcpy(ndp,dpl[(i-1)&63],sizeof dpl[i&63]);
		for(int j=max(1,i-60);j<=i;j++) {
			flt z=add[i][i-j];
			flt *odp=dpl[(j-1)&63];
			int ub=min(K-1,j-1);
			for(int k=0;k<=ub;k++) if(odp[k]+z>ndp[k+1]) ndp[k+1]=odp[k]+z;
		}
	}
	static flt dpr[64][N];
	for(int i=n;i>=ml;i--) {
		flt *ndp=dpr[i&63];
		memcpy(ndp,dpr[(i-1)&63],sizeof dpr[i&63]);
		for(int j=min(n,i+60);j>=i;j--) {
			flt z=add[j][j-i];
			flt *odp=dpr[(j+1)&63];
			int ub=min(K-1,n-j);
			for(int k=0;k<=ub;k++) if(odp[k]+z>ndp[k+1]) ndp[k+1]=odp[k]+z;
		}
	}

	flt z=0;
	for(int i=ml;i<mr;i++) for(int kl=0;kl<=K;kl++) {
			int kr=K-kl;
			if(kl>i || kr>n-i) continue;
			z=max(z,dpl[i&63][kl]+dpr[(i+1)&63][kr]);
		}
	cout<<fixed<<setprecision(9)<<((long double)z)/(1<<30)<<endl;
}
