var x,y,x1,x2,y1,y2:longint;
function xuly:string;
begin
if ABS(x2-x1) mod x <>0 then exit('NO');
if ABS(y2-y1) mod y <>0 then exit('NO');
if (ABS(x2-x1) div x) mod 2 <> (ABS(y2-y1) div y) mod 2 then exit('NO');
exit('YES');
end;

begin
//assign(input,'A.inp'); reset(input);
//assign(output,'A.out'); rewrite(output);
readln(x1,y1,x2,y2);
readln(x,y);
writeln(xuly);
//close(input); close(output);
end.


   const eps=0.0000000001;    nn=200000; besk=8000000000;
   label 1,2;
    type   { real=double;}  {string=ansistring;}
    mas=array [0..nn] of longint;   point=record x,y,z:real;end;
    zap=record p1,p2,p3 :int64;end; zap1=^zap;
    mass=array[0..nn] of longint;mass1=^mass;
    var zapas,dist,r,ll,rr,sum,q,h,pos,ot,t1,t2,pp,modul,t,tt,time,p,gr,qq,pmax,imax,p1,p2,p3,p4,l,nm,n,s1,s2,m,s,smin,cen,dl,i1:int64;
    ii,jj,step, k,i,j:longint;
     aa,bb,cc:int64;
     z,leftmax,leftmin,rightmax,rightmin,prev,next,d1,d2,aold,b,a,x,y:array[-1000..2000000] of int64;
     dda:array[-10..1200,-10..1200] of int64;
   zanx,zany:array[-10..2000000] of boolean;
    marked,zan:array[-10..1000000] of boolean;
    ss, ss1,ss2:string;
     fl:array[0..200] of boolean;
    ch:char;
    d :array [0..100,-10..100,-10..100] of extended;
    dd:array [0..201,-10..30] of int64;
    sss:array[0..nn] of string;
    st2:array[0..nn] of string;
     v0,v1,s0,t0:extended;
     zv:point;
     newx,newy,xx,yy:array[-1..200000] of int64;
     prob:array[-1..200,-1..200] of extended;

     yot:double;
       flag,flag1:boolean;
    function al(x,y:extended):extended; var t0,t1,p,s0,s1:extended;
 begin
     if (x>0)and(y>=0) then p:=arctan(y/x);
     if x<0 then p:=pi+arctan(y/x);
     if(x>0)and(y<0) then p:=2*pi+arctan(y/x);
     if x=0 then if (y>=0) then p:=pi/2 else p:=3*pi/2;
     al:=p/pi*180;
 end;
  function min(x,y:int64):int64;begin min:=x;if y<x then min:=y; end;
  function max(x,y:int64):int64;begin max:=x;if y>x then max:=y; end;

  function nod(x,y:int64):int64; var z:int64;
begin   repeat  z:=x mod y;x:=y;y:=z;   until  z=0 ;  nod:=x;end;

function degg(a,k:int64):int64; var p:int64;
begin
 if k<=0 then degg:=1 else if odd(k) then degg:=degg(a,k-1)*a mod modul else
   begin  p:=degg(a,k div 2); degg:=p*p mod modul;   end;

end;

begin
  {  assign (input,'input.txt');reset(input);
      assign (output,'output.txt'); rewrite(output);
   }
    read(aa,bb,dist,k);
    zapas:=bb;
    if bb<max(dist,aa-dist) then   begin write(-1); goto 1;  end;
     for i:=1 to k do if k>1 then
       begin
          if i=1 then begin inc(n); x[n]:=x[n-1]+dist;  end;

          if (i>1)and(i<k)and odd(i) then
          begin inc(n); x[n]:=x[n-1]+2*dist;  end;

          if (i>1)and(i<k)and not odd(i) then
          begin inc(n); x[n]:=x[n-1]+2*(aa-dist);  end;

          if (i=k)and(i>1) and odd(i) then
          begin inc(n); x[n]:=x[n-1]+2*(dist); inc(n); x[n]:=k*aa;  end;

          if (i=k)and not odd(i) then
          begin inc(n); x[n]:=x[n-1]+2*(aa-dist); inc(n); x[n]:=k*aa;  end;

       end;

      if k=1 then begin  inc(n); x[n]:=x[n-1]+dist;inc(n); x[n]:=x[n-1]+aa-dist; goto 2; end;

  2:  {   for i:=0 to n do write(x[i],' '); writeln;
       }

       for i:=0 to n-1 do
          begin
             zapas:=zapas-(x[i]-x[i-1]);
             if zapas<0 then begin write(-1); goto 1;  end;
             t:=x[i+1]-x[i];
             if t>bb then begin write(-1); goto 1;  end;
             if (t>zapas)and(i>0) then begin inc(ot); zapas:=bb;  end;
         {    writeln('i= ',i,' zapas= ',zapas,' ot= ',ot);
          }
          end;

            writeln(ot);

   1:          close(output);
end.