uses crt;
var
f,f1:text;
flag:boolean;
max,l,s:real;
i,j,jj,k,n,d:integer;
a,b:array[1..5000]of real;

begin
clrscr;
assign(f,'input.txt');
assign(f1,'output.txt');
reset(f);
readln(f,n,l);

for i:=1 to n do
 read(f,b[i],a[i]);
close(f);
max:=0;
for i:=1 to n do
BEGIN
 for j:=n downto (i+2)do
  begin
   flag:=true;jj:=i+2;
    for k:=j downto (i+2)do
     begin
     if ((a[k])<=(((a[j]-a[i])*(b[k]-b[i])/(b[j]-b[i])+a[i])))
         then begin flag:=false;k:=i+2; end;
      end;
    if flag then begin jj:=j;j:=n;end;
  end;
  s:=0;
  for d:=i to (jj-2)do
  begin
  s:=s+(0.5*(a[d]+a[d+1])*(b[d+1]-b[d]));
  end;

  if (sqrt(sqr(a[i]-a[jj])+sqr(b[i]-b[jj]))>=l)then s:=0
   else s:=s-0.5*(a[i]+a[jj])*(b[i]-b[jj]);
  if s>max then max:=s;
{  writeln('s=',s)}
  end;

writeln(max:4:4);
readkey;
end.