{$A+,B-,C+,D+,E-,F-,G+,H+,I+,J-,K-,L+,M-,N+,O+,P+,Q-,R-,S-,T-,U-,V+,W-,X+,Y+,Z1}
{$MINSTACKSIZE $00004000}
{$MAXSTACKSIZE $00100000}
{$IMAGEBASE $00400000}
{$APPTYPE GUI}
program E;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
ss:string;
AllS,CurS:extended;
f:textfile;
x,y:array[1..5000] of integer;
Su2:array[1..5000] of extended;
n:integer;
d1,d2,d3:int64;
i,j,k,s,p:integer;
flag:boolean;
l:extended;
function upper(x,y,x1,y1,x2,y2:integer):boolean;
begin
upper:=(x*(y2-y1)-y*(x2-x1)-(x1*y2-x2*y1))>0;
end;

function len2(x1,y1,x2,y2:integer):extended;
begin
len2:=1.0*(x1-x2)*(x1-x2)+1.0*(y1-y2)*(y1-y2);
end;

begin
  { TODO -oUser -cConsole Main : Insert code here }
assignfile(f,'input.txt');
reset(f);
read(f,n,l);
Alls:=0;
for i:=1 to n do
    begin
    read(f,x[i],y[i]);
    if i>1 then Su2[i-1]:=((Y[i-1]+y[i])*(X[i]-x[i-1]));
    end;
l:=l*l;
closefile(f);
s:=3;
for i:=1 to n-2 do
  begin
    j:=n;
    repeat
    if len2(x[i],y[i],x[j],y[j])<=l+0.001 then
       begin
       flag:=true;
       CurS:=Su2[i];
       d1:=y[j]-y[i];
       d2:=x[j]-x[i];
       d3:=x[i]*y[j]-x[j]*y[i];
       for k:=j-1 downto i+1 do
        begin
        if x[k]*d1-y[k]*d2>d3 then
           begin
          // if p<j-1 then p:=k+1 else p:=k;
           p:=k;
           flag:=false;
           break;
           end;
        CurS:=CurS+Su2[k];
        end;
       if flag then
          begin
          CurS:=CurS-((Y[i]+y[j])*(X[j]-x[i]));
          if CurS>AllS then AllS:=CurS;
          end;
       if flag then break;
       end else dec(j);
     j:=p;
    until j<i+2;
  end;
assignfile(f,'output.txt');
str((AllS/2):0:1,ss);
if ss[length(ss)]='0'
then delete(ss,length(ss)-1,2);
rewrite(f);
write(f,ss);
closefile(f);
end.
