var vp,vd,t,f,c,s,v,vs,vm:longint;
    x:double;
begin
  {assign(input,'input.txt');
  reset(input);
  assign(output,'output.txt');
  rewrite(output);}

  read(vp,vd,t,f,c);

  x:=vp*t; v:=vd-vp; vs:=vd+vp; vm:=vd*vp;

  if (v<=0) then begin
    writeln(0); exit;
  end;

  x:=x*vd/v;
  if (x>=c) then begin
    writeln(0);
  end else begin

    s:=0;
    while x<c do begin
      x:=(x*vs+f*vm)/v;
      inc(s);
    end;
    writeln(s);
  end;

end.

{$APPTYPE CONSOLE}

uses
  SysUtils;
var vp,vd,t,f,c:int64;
x,tim:real;
kol:int64;
begin
 readln(vp,vd,t,f,c);
 x:=t*vp;
 kol:=0;
 if vp<vd then
 while x<c do begin
  tim:=x/(vd-vp);
  x:=x+tim*vp;
  if x>=c then break;
  inc(kol);
  tim:=x/vd+f;
  x:=x+tim*vp;
 end;
 writeln(kol);
end.

var vp,vd,t,f,c,ans:longint;
    time,x,s,tt:double;
function try:longint;
  begin
    time:=c/vp-t;
    ans:=0;
    if (time<=0) or (vp>=vd) then exit(0);
    s:=t*vp;
    while true do
      begin
        x:=s/(vd-vp)*vp;
        s:=s+x;tt:=s/vd;
        if s>=c then exit(ans);
        ans:=ans+1;
        s:=s+(tt+f)*vp;
      end;
  end;
begin
  readln(vp);
  readln(vd);
  readln(t);
  readln(f);
  readln(c);
  writeln(try);
end.

const eps=1e-8;

var
 x,tt,time,p,d,vp,vd,t,f,c:extended;
 ans:longint;

begin
 readln(vp,vd,t,f,c);
 time:=c/vp-t;
 if (time<=eps) or (vp>=vd) then
  begin writeln(ans); halt; end;
 p:=t*vp;
 while true do
  begin
   x:=p/(vd-vp)*vp;
   p:=p+x; tt:=p/vd;
   if p>=c then
    begin writeln(ans); halt; end;
   inc(ans); p:=p+(tt+f)*vp;
  end;
end.

var
        vp,vd,t,f,c,i:longint;
        p,d:double;
begin
        readln(vp,vd,t,f,c);
        p:=vp*t;
        d:=0;
        if vp>=vd then writeln(0) else begin
        p:=p+vp*p/(vd-vp);
        d:=p;
        if p>=c then writeln(0)
        else  begin
        i:=0;
        while p<c do begin
        i:=i+1;
        p:=p+p/vd*vp+vp*f;
        p:=p+vp*p/(vd-vp);
        end;
        writeln(i);
        end;
        end;
end.

//Yerzhan Dyussenaliyev
Uses Math;
const
	eps = 1e-10;
var
	p, d, t, f, c, dp, dd, l, r, tt, t1, t2, time: extended;
	ans, i: longint;

procedure print(x: longint);
begin
	writeln(x);
	halt;
end;

begin
	{$ifndef online_judge}
		reset(input, 'a.in');
		rewrite(output, 'a.out');
	{$endif}

	read(p, d, t, f, c);

	dp := p * t;
	dd := 0;
	t1 := (c - dp) / p;
	t2 := c / d;
	if (dp >= c) or (t1 < t2 + eps) then print(0);

	ans := 0;
	while true do begin
		l := 0;
		r := 1000;
		tt := 0;
		for i := 1 to 1000 do begin
			time := (l + r) / 2;
			if dp + p * time < dd + d * time then begin
				tt := time;
				r := time;
			end else
				l := time;
		end;
		dp := dp + p * tt;
		if c < dp + eps then print(ans);
		inc(ans);
		time := dp / d + f;
		dp := dp + p * time;
	end;
end.

Var
  vp,vd,f,c,a,t,d,s: real;
  k: longint;

Begin
  read(vp,vd,t,f,c);
  if((c/vp) <= (c/vd + t)) then
    begin
      write(0);
      exit;
    end
  else
    begin
      a := vp*t; k := 0;
      repeat
        s := a * vp / (vd - vp);
        a := a + s;
        if(a < c) then
          inc(k);
        a := a + (f*vp) + (vp * a / vd);
      until a >= c;
    end;
  write(k);
End.

const fin='';
      fout='';
var vd,vp,t,f,c,s:longint;
procedure solve1;
var ff:text;
begin
        assign(ff,fin);reset(ff);
        read(ff,vp,vd,t,f,c);
        close(ff);
end;
procedure solve2;
var sd,sp,l,r,mid:real;
begin
        sp:=vp*t;
        while sp<c do
                begin
                       l:=0;r:=1101;
                       repeat
                                mid:=(l+r)/2;
                                if vd*mid>=vp*mid+sp then r:=mid
                                else l:=mid;
                       until l-r>=-0.00005;
                       sp:=sp+vp*r;if sp<c then inc(s);
                       sp:=sp+vp*(r+f);
                end;
end;
procedure solve3;
var ff:text;
begin
        assign(ff,fout);rewrite(ff);
        writeln(ff,s);
        close(ff);
end;
procedure solve; begin solve1;solve2;solve3; end;
begin
        solve;
end.

// Allah is Great
{$H+,Q-,R-}
{$M 17777777}

uses
    SysUtils , Math;
type
    int = extended;
var
    vp , vd, t , f , s : int;

function enough (m : longint) : boolean;
var time , final : int;
begin
  if (vd - vp <= 0) then begin
     enough:= true; exit;
  end;
  final:= t * vp;
  while (true) do begin
      time:= final / (vd - vp);
      final:= final +  vp * time;
      if (final >= s) then break; dec(m);
      final:= final + (final / vd + f) * vp;
      if (final >= s) then break;
  end;
  enough:= (m >= 0);
end;

procedure reading;
var
    l , r , mid : longint;
begin
   read(vp , vd , t , f , s);
   l:= 0; r:= 10000;
   while (r - l > 1) do begin
   	mid:= (l + r) shr 1;
   	if (enough (mid)) then r:= mid else l:= mid;
   end;
   if (enough(l)) then writeln(l) else writeln(r);
end;

begin
   reading;
end.

program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  vp, vd, t, f, c, i:Integer;
procedure pob(l:extended);
begin
  l:=l+vp*(l/(vd-vp));
  if l >=c then
    Exit;
  Inc(i);
  l:=l+vp*(l/vd);
  l:=l+vp*f;
  pob(l);
end;
var
l:Extended;
begin
read(vp, vd, t, f, c);
i:=0;
if vp>=vd then
    Writeln(0)
else
begin
l:=vp*t;
pob(l);
Writeln(i);
end;
readln;readln;
end.

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  i, ans : integer;
  vp, vd, t, f, c : integer;
  ppos, dpos : extended;

begin
  read(vp, vd, t, f, c);
  ans := 0;
  if vd <= vp then begin
    writeln(0);
    readln;readln;
    halt;
  end;
  dpos := 0;
  ppos := t * vp;
  while ppos < c do begin
    ppos := ppos + (ppos - dpos) / (vd - vp) * vp;
    dpos := ppos;
    if ppos < c then
      inc(ans)
    else
      break;
    ppos := ppos + f * vp + dpos / vd * vp;
    dpos := 0;
  end;
  writeln(ans);
  readln;readln;
end.

var i,ans,l,k,n,m,d:longint;sd,sp,vp,x,vd,f,t,c,tp,tt:real;
begin               {
assign (input,'input.txt');
assign (output,'output.txt');
reset (input);
rewrite (output);   }
readln (vp,vd,t,f,c);
tp:=(c) / vp;
tt:=t;
sp:=vp*t;
ans:=0;
while sp<c do
  begin
    tt:=tt+1;
    sp:=sp+vp;
    sd:=sd+vd;
    if ((sd>=sp) and (sp<c)) or (sd>sp) then
      begin
        sp:=sp-vp;
        sd:=sd-vd;
        tt:=tt-1;
        x:=(sp-sd)/(vd-vp);
        tt:=tt+x+f;
        sp:=sp+vp*f+x*vp+((x*vd+sd)/vd*vp);
        inc (ans);
        sd:=0;
      end;

  end;
write (ans);
end.

var vp,vd,t,f,cc,ost,com,l,r,c:extended;
    res:longint;
 begin
   read(vp,vd,t,f,cc);
   if vp+(1e-10)>=vd then begin writeln(0); halt(0); end;
   ost:=t;
   com:=0;
   res:=0;
   while com-(1e-10)<cc do
    begin
      if ost>0 then
       begin
         com:=com+ost*vp;
         ost:=0;
       end
      else
       begin
         res:=res+1;
         ost:=f+com/vd;
         continue;
       end;

      l:=0;
      r:=10000;
      while l+(1e-7)<r do
       begin
         c:=(l+r)/2;
         if vd*c<com+vp*c then l:=c
                          else r:=c;
       end;
      com:=com+vp*r;
    end;
   writeln(res);
 end.

var vp,vd,t,f,c,k:integer;
    l:real;
begin
    readln(vp);
    readln(vd);
    readln(t);
    readln(f);
    readln(c);
    if vd<=vp then
        writeln(0)
    else begin
        k:=0;
        l:=t/(1/vp-1/vd);
        while c>l do begin
            inc(k);
            l:=(l*(1/vp+1/vd)+f)/(1/vp-1/vd);
        end;
        writeln(k);
    end;
    readln;
end.

var
  vp,vd,f,t,d,c,res:integer;
  tp:extended;
begin
  readln(vp,vd,t,f,c);

  d:=vd-vp;

  if d <= 0
     then
       begin
         writeln('0');
         halt;
       end;

  res:=0;

  tp:=t*vp;
  tp:=tp+(tp/d)*vp;
  while tp<c do
    begin
      res:=res+1;
      tp:=tp+(f+tp/vd)*vp;
      tp:=tp+(tp/d)*vp;
    end;

  writeln(res);
end.

var vp, vd, t, f, c, x1,x2,x:extended;k:longint;
begin
{assign(input,'input.txt');reset(input);}
read(vp, vd, t, f, c);k:=0;
if vd <= vp
then begin write('0');exit;end
else begin x:=0;x1:=vp*t;x2:=(x+x1)*vp/(vd-vp);x:=x+x1+x2;
		if x>=c
		then begin write('0');exit;end
		else  while x<c do begin k:=k+1;t:=x/vd +f;
					x1:=vp*t;x2:=(x+x1)*vp/(vd-vp);x:=x+x1+x2;
				end;
		end;
writeln(k);
{close(output);assign(output,'output.txt');rewrite(output);}
end.

var
 vp,vd,t,f,c,kol,vo:longint;
  i:extended;

begin
 readln(vp);
  readln(vd);
   readln(t);
  readln(f);
 readln(c);

 if vp>=vd
  then
   begin
    kol:=0;
   end
  else
   begin
    vo:=vd-vp;
     i:=t*vp; kol:=0;
      while true do
       begin
        if i>=c then break;
         i:=i+(i / vo)*vp;
          if i>=c then kol:=kol else inc(kol);
         i:=i+((i / vd)+f)*vp;
       end;
   end;
 writeln(kol);
end.

Var k,vp,vd,t,f,c:Longint;
    l:Real;
Begin
     Readln (vp,vd,t,f,c);
     k:=0;
     l:=t*vp;
     If vp<vd
     then While l<c do
          Begin
               l:=l+(vp*l/(vd-vp));
               If l<c
               then Inc (k);
               l:=l+vp*((l/(vd))+f);
          End;
     Writeln (k);
End.

Var     x0, v_p, v_d, t, f, c : real;
        res : longint;
Begin
        readln(v_p,v_d,t,f,c);
        x0 := v_p*t;
        if v_p >= v_d then begin
                writeln(0);
                exit;
        end;
        while x0 < c do begin
                x0 := x0+v_p*(x0/(v_d-v_p));
                if x0 >= c then break;
                res := res+1;
                x0 := x0+(x0/v_d)*v_p;
                x0 := x0+v_p*f;
        end;
        writeln(res);
End.

program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;
var x,v1,v2,t,f,c:extended;
    i:longint;
begin
  read(v1,v2,t,f,c);
  if v1>=v2 then
    begin
      write(0);
      halt(0);
    end;

  x:=v1*t;
  x:=x+x*v1/(v2-v1);

  for i:=1 to 1000001 do
    begin
      if x>=c then
        begin
          write(i-1);
          halt(0);
        end;
      x:=x+x*v1/v2+f*v1;
      x:=x+x*v1/(v2-v1);
    end;
end.

{$APPTYPE CONSOLE}
{R+,S+,Q+,I+,C+,M+,H+,O+}
{$R-,S-,Q-,I-,C+,M-,H+,O-}

uses
    SysUtils, Math;

const
    EPS : double = 1e-6;

var
    vp, vd, t, f, c, ans : longint;
    cur, tt : double;

procedure go();
begin
    write(ans);
    halt(0);
end;

begin
    read(vp, vd, t, f, c);
    cur := vp * t;
    ans := 0;
    if (cur - c + EPS > 0) or (vp >= vd) then go();
    if (c - cur) / vp <= cur / (vd - vp) + EPS then go();
    while cur < c do begin
        tt := cur / (vd - vp);
        cur := cur + vp * tt;
        if cur - c + EPS > 0 then go();
        inc(ans);
        tt := cur / vd + f;
        cur := cur + vp * tt;
    end;
    go();
end.

{$APPTYPE CONSOLE}

uses SysUtils;

const eps = 1e-6;

type int = integer;

var vg, vd, t, f, s, res: int;
d, x: double;

function bigger(a, b: double): boolean;
begin
  if (a > b) and (abs(a-b) > eps) then
    bigger:= true
  else
    bigger:= false
end;

begin
  //assign(input, 'input.txt'); reset(input);
  //assign(output, 'output.txt'); rewrite(output);

  res:= 0;
  readln(vg);
  readln(vd);
  readln(t);
  readln(f);
  readln(s);
  if vd > vg then
  begin
    d:= vg*t;
    x:= d/(vd-vg)*vg+d;
    while bigger(s, x) do
    begin
      inc(res);
      d:= x+(x/vd+f)*vg;
      x:= d/(vd-vg)*vg+d
    end;
  end;
  write(res)
end.

{$APPTYPE CONSOLE}

uses
  SysUtils,
  Math;

var
  v1, v2, t, sdelta, dist, f, s, s1, t1, tnew, tlast: extended;
  k: int64;
  per: boolean;

procedure panic(x: int64);
begin
  write(x);
  halt(0);
end;

begin
  {Reset(input, 'input.txt');
  Rewrite(output, 'output.txt'); }

  read(v2, v1, t, f, dist);
  if v1 <= v2 then
    panic(0);

  s := v2 * t;
  if s >= dist then
    panic(0);

  k := 0;

  WHile True do
    begin

      {t := s / (v1 - v2) * 2 + f + t;
       }
      s1 := s;
      s := s + (s / (v1 - v2))* v2;
      if s >= dist then panic(k);
      inc(k);
      s := s1 + (2 * s1 / (v1 - v2) + f) * v2;
      if s >= dist then panic(k);
    end;

end.

var
kol,vp,vd,t,f,c:longint;
dog,mesto:real;
begin
readln(vp);
readln(vd);
readln(t);
readln(f);
readln(c);
mesto:=t*vp;
if vp<vd then begin
while true do begin
    if mesto>=c then break
    else begin
        dog:=mesto/(vd-vp);
        mesto:=dog*vd;
        if mesto>=c then break
        else begin
            mesto:=mesto+f*vp+vp*(mesto/vd);
            inc(kol);
        end;
    end;
end;
end;
writeln(kol);
end.

Var a,b,c,d,n,i,j,k,l,m,t:extended;
r:longint;
Begin
Readln(a);
Readln(b);
Readln(c);
Readln(d);
Readln(N);
if a>=b then begin
  writeln(0);
  halt(0);
end;
t:=a*c;
i:=0;
r:=0;
while t<n do begin
  i:=0;
  While i<=t do begin
    i:=i+b;
    t:=t+a;
  end;
  i:=i-b;
  t:=t-a;
  t:=t+((t-i)/b)*a;
  if t>=n then begin
    writeln(r);
    halt(0);
  end;
  r:=r+1;
  i:=t;
  t:=t+(t/b)*a;
  t:=t+d*a;
end;
writeln(r);
end.

var
   vp, vd,  f, c, n: integer;{n --- счётчик драгоценностей}
   t, nach: real;{nach --- позиция принцессы}
procedure dognal;{дракон догоняет принцессу}
begin
   t := nach / (vd-vp);
   nach := nach + vp * t;
   if nach < c then
      n := n + 1;
end;
procedure domoi;{дракон несёт драгоценность домой}
begin
   t := nach/vd + f;
   nach := nach + t * vp;
end;
begin
   readln(vp);
   readln(vd);
   readln(t);
   readln(f);
   readln(c);
   nach := vp * t;
   if (vp >= vd) or (nach >= c) then n := 0
   else
      while nach < c do
      begin
         dognal;
         domoi;
      end;
   writeln(n);
end.

const
        fi='';
        fo='';
var vp,vd,t,f,c:longint;f1,g:text;
procedure nhap;
begin
        assign(f1,fi);
        reset(f1);
        readln(f1,vp);readln(f1,vd);readln(f1,t);readln(f1,f);readln(f1,c);
        close(f1);
end;
procedure xuli;
var  dem:longint;s,t1:real;
begin
        s:=vp*t;dem:=0;
        while s<c do
        begin
                t1:=s/(vd-vp);
                s:=s+vp*t1;
                if s>=c then break;
                s:=s+vp*(f+t1);
                inc(dem);
        end;
        writeln(g,dem);
end;
procedure xuat;
begin
        assign(g,fo);
        rewrite(g);
        if vp>=vd then writeln(g,0) else
        xuli;
        close(g);
end;
BEGIN
        nhap;
        xuat;
END.

Var vp,vd,t,f,c:extended;
    kil:longint;
    now:extended;
    xp,xd,tt:extended;

Begin

Readln(vp);
Readln(vd);
Readln(t);
Readln(f);
Readln(c);

if c/vp<=c/vd+t then begin Writeln(0); halt; end;

xp:=vp*t; xd:=0; kil:=0;

While true do begin

tt:=(xp-xd)/(vd-vp); if xp+tt*vp>=c then break;

xp:=xp+tt*vp; inc(kil); xd:=xp; xp:=xp+vp*((xp/vd)*2+f);

if xp>=c then break;

end;

Writeln(kil);

End.

var vp,vd,time,f:extended;
count:longint;
cd,c:extended;
begin
readln(vp,vd,time,f,c);
count:=0;
if (vd>vp) then
begin
  cd:=vd*vp*time/(vd-vp);
  while(cd<c) do
  begin
    count:=count+1;
    cd:=cd+vd*(2*cd/vd+f)*vp/(vd-vp);
  end;
end;
writeln(count);
end.

program pr1;

{$APPTYPE CONSOLE}

const nn=10001;
 eps=0.000000001;  nnn=200;
 label 1,2;
var step,i,j:longint;
vp,vd,t,f,c,ii,a,n,ot,modul,p1,p2,k,s,besk,l,izm,p,k1,k2,a2:longint;
timedog,len,timest:array [0..100000] of double;
koef:double;
sv:array [-1..100,-1..100 ] of boolean;
uu,uu1:array[0..200] of boolean;
flag2,flag1,flag:boolean;
verot:double;
pr:array[-1..1000000] of boolean;
ss,namemin:string;
str:array[0..20] of string;
function min (a,b:longint):longint;begin min:=b;if a<b then min:=a;  end;
function max (a,b:longint):longint;begin max:=b;if a>b then max:=a;  end;

function nod(a,b:longint):longint; var p,t:longint;
begin if (a>0)and(b>0) then
   begin while (b>0) do begin t:=a mod b;a:=b;b:=t;    end;
    p:=a;
   end else if a=0 then p:=b else p:=a;
nod:=p;
end;
 function luck(a:longint):boolean;
 var i,j,k:longint;flag:boolean;
 c: array[0..10] of longint;
begin
  flag:=true;  j:=0;
  k:=a;
  while k>0 do begin inc(j); c[j]:=k mod 10; k:= k div 10; {writeln(j,' uu ',k); }  end;
 for i:=1 to j do if (c[i]<>4)and(c[i]<>7) then flag:=false;
 luck:=flag;
end;

 function musk(a:longint):longint;
 var p,i,j,k:longint;flag:boolean;
 c: array[0..10] of longint;
begin
  flag:=true;  j:=0;  p:=0;
  k:=a;
  while k>0 do begin inc(j); c[j]:=k mod 10; k:= k div 10; {writeln(j,' uu ',k); }  end;
  for i:=j downto 1 do if (c[i]=4) or (c[i]=7) then p:=10*p+c[i] ;
 musk:=p;
  end;

{function diam(a,b:mas;n:longint):longint;
var i0,t,i,j,k:longint; kver:mas; sv:mas2;
 begin
   for i:=1 to n do for j:=1 to n-1 do
   if a[j]=i then  begin  inc(kver[i]); sv[i,kver[i]]:=b[j];  end;
 for i:=1 to n do for j:=1 to n-1 do
   if b[j]=i then  begin  inc(kver[i]); sv[i,kver[i]]:=a[j];  end;
 for i:=1 to n do write(kver[i],' ');writeln;  writeln;
 for i:=1 to n do begin  for j:=1 to kver[i] do write(i,'-',sv[i,j],'    ');writeln;  end;

for i0:=1 to 1 do
  begin  for i:=1 to n do sm[i]:=false; for i:=1 to n do dist[i]:=1000;
  sm[i0]:=true; dist[i0]:=0; kol:=1;

  end;

diam:=t;
 end; }

begin
{assign (input,'input.txt');reset(input);
      assign (output,'output.txt'); rewrite(output);
}    read(vp,vd,t,f,c); timest[1]:=0;
    if vp>=vd then begin  write(0); goto 1;  end;
   koef:=vp/(vd-vp);   {otshet - drakon}
   for i:=1 to 1000 do
     begin
        timedog[i]:=(timest[i]+t)*koef;
        timest[i+1]:=2*timedog[i]+f+timest[i];

        if timest[i]+timedog[i]+t>c/vp-eps then begin p:=i; break; end;    ;
     end;
     writeln(p-1);
    { for i:=1 to 10 do writeln(timedog[i]:0:2,' ',timest[i]:0:2,' '); writeln;
     }

   1:          close(output);
end.

var  sc, st, ss, st1, st2, st3: string;
       c1, c2, ch1, ch2: char;
        vp, vd, f, k,  i, j, c, a, b, max, min: longint;
        s,sp,s1, l1,l2,l3: longint;
        cifr: boolean;
        mas: array [1..101] of integer;
        x,t, l: real;
begin
   readln(vp);
   readln(vd);
   readln(t);
   readln(f);
   readln(c);
   l:=0;   k:=0;
 if vd<=vp then k:=0 else
   while l<c do
   begin
       x:=vp*t/(vd-vp);
       l:=vd*x;
       if l<c then inc(k);
       t:=(t+x)+(x+f);
   end;
   writeln(k);
end.

program GRIG;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  v, w, t, f, c, a, s: real;
  kol: integer;

begin
  readln(v, w, t, f, c);

  s := v * t;
  kol := 0;

  if w < v then
    begin
      write(0);
      halt(0);
    end;

  if w = v then
    begin
      write(0);
      halt(0);
    end;

  while s < c do
    begin
    a := s / (w - v);
      s := s + (v * a);
      if s >= c then
        begin
          write(kol);
          halt(0);
        end
      else
        begin
          inc(kol);
          s := s + (v * (f  + a));
        end;
    end;

  write(kol);

end.

program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

const
  eps = 1e-8;

var
  x, tall, vp, t, vd, f, c, pref: extended;
  ans: integer;

begin
  read(vp, vd, t, f, c);

  if vd <= vp then begin
    writeln(0);
    halt;
  end;

  c := c - t * vp;
  tall := c / vp;
  x := t * vp;

  x := x + vp * (x / (vd - vp));
  ans := 0;
  while x <= c + eps do begin
    inc(ans);
    pref := x;
    x := x + vp * (pref / vd);
    x := x + vp * f;
    x := x + vp * (x / (vd - vp));
  end;
  writeln(ans);
end.

var
  vp,vd,t,f,c,k:longint;
  t1,s1:real;
begin
  readln(vp,vd,t,f,c);
  if vd>vp then
  begin
  t1:=vp*t/(vd-vp);
  s1:=t1*vd;
  if s1<c then k:=1;
  //writeln(s1);
  while s1<c do
  begin
    t1:=(s1+vp*t1+vp*f)/(vd-vp);
    s1:=t1*vd;
    //writeln(s1);
    if s1<c then k:=k+1;
  end;
  writeln(k);
  end
  else
  writeln('0');
end.

program ProjectB;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  vd,vp,f,c,rez:integer;
  tz,t,tp,s:extended;
begin
  { TODO -oUser -cConsole Main : Insert code here }
readln(vp);
readln(vd);
readln(t);
readln(f);
readln(c);
tz:=c/vp;
if vp>=vd then
  begin
    writeln(0);
    exit;
  end;
s:=vp*t;
while s<c do
  begin
    t:=t+s/(vd-vp);
    s:=vp*t;
    if s<c then inc(rez);
    t:=t+s/vd+f;
    s:=t*vp;

  end;
writeln(rez);
end.

var
nowx:real;
ans,aim,cost,i,j,k,n,m,nowy,vx,vy:longint;
begin
readln(vx);
readln(vy);
readln(i);
nowx:=vx*i;  nowy:=0;
readln(cost);
readln(aim);
if (vx>=vy)or(aim<=nowx) then
begin
  writeln(0);
  exit;
end;
nowx:=nowx+(nowx/(vy-vx))*vx;
while  nowx<aim do
  begin
    inc(ans);
    nowx:=nowx+(nowx/vy)*vx+cost*vx;
    nowx:=nowx+(nowx/(vy-vx))*vx;
  end;
writeln(ans);
end.

{
   untitled4.pas

   Copyright 2013 Adzka <adzka@adzka-AOD270>

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
   MA 02110-1301, USA.

}

var
	vp,vd,f,c,x:longint;
	s,t,te:double;

begin
	x:=0;
	s:=0;
	readln(vp);
	readln(vd);
	readln(t);
	readln(f);
	readln(c);
	if vp>=vd then writeln(0)
	else begin
		while s<c do begin
			te:=t+(vp*t)/(vd-vp);
			s:=vp*te;
			t:=te+f+s/vd;
			if s<c then inc(x);
		end;
	writeln(x);
	end;
end.

Program GIO;

var vp,vd,t,f,c,g,d:longint;  rv,td:real;
begin

readln(vp);
readln(vd);
readln(t);
readln(f);
readln(c);

g:=0;
rv:=t*vp;
d:=vd-vp;
if (d<=0) then begin writeln('0'); exit end;

while (rv<c) do
begin
td:=rv/d;
if (rv+td*vp<c) then begin rv:=rv+(td*2+f)*vp; g:=g+1 end else break;
end;

writeln(g);

end.

var vp,vd,t,f:real;
i:longint;
cd,c:real;
begin
readln(vp,vd,t,f,c);
i:=0;
if (vd>vp) then
begin
  cd:=vd*vp*t/(vd-vp);
  while(cd<c) do
  begin
    i:=i+1;
    cd:=cd+vd*(2*cd/vd+f)*vp/(vd-vp);
  end;
end;
writeln(i);
end.

const fi='';
      fo='';
var vp,vd,ff,t,c:integer;
procedure all;
var f:text;
    s,tp:real;kq:integer;
begin
     assign(f,fi);reset(f);
     readln(f,vp);readln(f,vd);readln(f,t);readln(f,ff);readln(f,c);
     close(f);
     tp:=t*vp; kq:=0;
     if vd>vp then
     repeat
           s:=(vd*tp)/(vd-vp);
           if s<c then inc(kq);
           tp:=s+(s/vd +ff)*vp;
     until tp>=c;
     assign(f,fo);rewrite(f);write(f,kq);close(f);
end;
begin
     all;
end.

program contest_105;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var ans : longint;
    td,curS,t,Vp,Vd,f,c : extended;

begin
  readln(Vp);
  readln(Vd);
  readln(t);
  readln(f);
  readln(c);

  if (Vp >= Vd) then begin
    writeln('0');
    halt(0);
  end;

  ans := 0;

  while true do begin
    td := (t * Vp) / (Vd - Vp);
    curS := curS + td * Vd;
    if curS < c then begin
      inc(ans);
      t := 2*(curS/Vd)+f;
    end else break;
  end;

  writeln(ans);

end.

var
    ans,vp,vd,c,t,f:longint;
    tec:real;
begin
    //reset(input,'input.txt');
    //rewrite(output,'output.txt');
    read(vp,vd,t,f,c);
    tec:=t*vp;
    if (tec>=c)or(vp>=vd) then begin
        write('0');
        halt(0);
    end;
    tec:=tec+tec*vp/(vd-vp);
    if tec>=c then begin
        write('0');
        halt(0);
    end;

    while tec<c do begin
         tec:=tec+(tec*vp/vd)+f*vp +(tec+(tec*vp)/vd +f*vp)*vp/(vd-vp) ;
         inc(ans);
    end;

    write(ans);

end.

{$APPTYPE CONSOLE}
uses math;
const eps=1e-12;
var
 ans,vp,vd,t,f,c:integer;
 found:boolean;
 l1,l:extended;

begin
 {reset(input,'Input.txt');
 rewrite(output,'Output.txt');}
 read(vp,vd,t,f,c);
 If vp>=vd then writeln(0) else
 begin
  ans:=0;
  found:=false;
  l:=t*vp+vp*(t*vp/(vd-vp));
  while not found do
  begin
     found:=l-c>-eps;
     inc(ans);
     l1:=l;
     l1:=l1+vp*(l1/vd)+vp*f;
     l:=l1+vp*l1/(vd-vp);
  end;
  writeln(ans-1);
 end;
end.

var vp,vd,t,f,c,xp,xd,t1:real;
    ans:longint;
begin
readln(vp,vd,t,f,c);
xp:=vp*t; xd:=0; ans:=0;
if vd<>vp then t1:=xp/(vd-vp);  //повернення назад+складання речей
xp:=xp+vp*t1;
if (xp>=c) or (vp>=vd) then begin write(0); halt; end;
while xp<c do
begin
inc(ans);
t1:=xp/vd;  //повернення назад+складання речей
xp:=xp+vp*(t1+f);
t1:=xp/(vd-vp); //наздогнати принцесу
xp:=xp+vp*(t1);
end;
write(ans);
end.

var m,a,n,kch,x:real;
    s,vp,vd,f,t,c:longint;
begin
 readln(vp,vd,t,f,c);
 //tp:=c/vp;
 n:=c;
 kch:=t;
 a:=vp*t;
 while a<n do
  begin
   a:=a+vp;
   m:=m+vd;
   if ((m>=a) and (a<n)) or (m>a)
    then begin
          //kch:=kch+f;
          kch:=kch-1;
          a:=a-vp;
          m:=m-vd;
          x:=(a-m)/(vd-vp);
          //kch:=kch+m/vd;
          kch:=kch+x+f;
          //a:=a+vp*f+m/vd*vp;
          a:=a+vp*f+x*vp+((x*vd+m)/vd*vp);
          inc(s);
          m:=0;
         end;
   kch:=kch+1;
  end;
 writeln(s);
end.

var vp,vd,t,f,c,res:integer;
    i:real;
begin
//assign(input,'input.txt');assign(output,'output.txt');
readln(vp,vd,t,f,c);
if vd<=vp then writeln(0)else
 begin
 res:=0;
 i:=t*vp;
 while i<c do
  begin
      i:=i+(i/(vd-vp))*vp;
      if i<c then inc(res);
      i:=i+(i/vd)*vp+f*vp;

  end;
  writeln(res);
 end;
//close(input); close(output);
end.

program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var n,i,a,b,k:integer;
    ah:array[0..10000] of integer;
    bh:array[0..10000] of integer;
    x,t,y:extended;
    vp,vd,c,ans,f:integer;
begin

read(vp,vd,t,f,c);
if vp>=vd then begin write(0); halt; end;
x:=0; ans:=0;
while true do
 begin
  y:=(vp*vp*t)/(vd-vp);
  x:=vp*t+y;
  //writeln(x);
  t:=t+x/vd+f+y/vp;
  if x>=c then break;
  inc(ans);
 end;
 write(ans);
end.

var i,j,n,m: longint;
    x,y,vp,vd,t,f,c: real;
begin
     readln(vp);readln(vd);readln(t);readln(f);readln(c);
     if vp>=vd then
      begin
       writeln(0);exit;
      end;
     x:=(vp*t/(vd-vp))*vd;
     n:=0;
     while x<c do
      begin
       inc(n);
       y:=x+x/vd*vp+f*vp;
       x:=(y/(vd-vp))*vd;
       //x:=x+(vp*(f+x/vd)/(vd-vp))*vd;
      end;
     writeln(n);
end.

var
 i,vp,vd,t,f,c:real;
 k:integer;
begin
 readln(vp);
 readln(vd);
 readln(t);
 readln(f);
 readln(c);
 i:=t*vp;
 k:=0;
 if vd>vp then
  while i<c do
   begin
    t:=i/(vd-vp);
    i:=t*vd;

    if i<c then begin inc(k); { writeln(i:0:2); } end;
    t:=f+i/vd;
    i:=i+t*vp;
  //      writeln(i:0:2);
   end;
 write(k);
end.

program CF105B;
var vp,vd,t,f,c,res: longint;
  p: real;
begin
{  assign(input,'input.txt');
  assign(output,'output.txt');
  reset(input);
  rewrite(output); }

  read(vp,vd,t,f,c);
  res := 0;
  if vd > vp then begin
   p := t*vp;
   while p < c do begin
    p := p/(vd-vp)*vp + p;
    if p < c then begin
     inc(res);
     p := p + f*vp + p/vd*vp;
     end;
    end;
    end;
  write(res);
end.

var
  vp,vd,t,f,c,x,t1,v	:	extended;
  ans			:	longint;
begin
//   reset(input,'a.in');   rewrite(output,'a.out');
    read(vp,vd,t,f,c);
    if (vp >= vd) then begin write(0); halt; end;
    x:=vp * t;
    ans:=0;
    while x < c do begin
    	v:=vd - vp;
    	x:=x + (x / v) * vp;
    	if x >= c then break;
    	inc(ans);
    	t1:=(x / vd) + f;
    	x:=x + (t1 * vp);
    end;
    write(ans);
end.

{$APPTYPE CONSOLE}
{$O-}

uses
  SysUtils;

var
  k, len, vp, vd, tw, fs : integer;
  ppos, x : real;

begin
  readln(vp, vd, tw, fs, len);

  if (vp >= vd) then
    begin
    write(0);
    halt;
    end;

  ppos := tw * vp;
  k := 0;

  x := ppos / (vd - vp);
  ppos := ppos + (vp * x);

  while (ppos < len) do
    begin
    inc(k); //������� ���� �������������

    //��� ������ ������ �����, �������� ����
    ppos := ppos + vp * (x + fs);

    x := ppos / (vd - vp);
    ppos := ppos + (vp * x);
    end;

  write(k);
end.

{
vd * x = vp * x + ppos;
x * (vd - vp) = ppos
x = ppos / (vd - vp);

}

var q,i,k,d,n,m:longint;
    vp,vd,t,f,c,s,l:extended;
begin
read(vp,vd,t,f,c);
k:=0;
if t=0 then
begin
if c<>0 then k:=1;
s:=f*vp;
end else
s:=t*vp;
l:=s;
if vp<vd then
while l<c do
begin
l:=l+(vp*l/(vd-vp));
if l<c then inc(k);
l:=l+vp*((l/(vd))+f);
end;
writeln(k);
end.

Var vp,vd,t,f,c,r1,r2,i,ans,t1:extended;
  begin
    Read(vp,vd,t,f,c);
    if vp>=vd then begin WriteLn(0); exit; end;
    i:=0;
    r1:=0;
    r2:=vp*t;
    While r2<c do
      begin
        i:=r2/abs(vp-vd);
        if (r2+i*vp>=c) then break;
        ans:=ans+1;
        r2:=r2+i*vp;
        r2:=r2+(f+(r2/vd))*vp;
      end;
    WriteLn(ans:0:0);
  end.

Type Slog = Record x, y, r : LongInt; end;

var i, j, k, l, N, Vp, Vz, T0, Tf, C : Real;
    Tpovratka, Predjeno: Real;
    Radijator : array [0..1005] of Slog;
    s, IntPart, DecPart, Naopak : String;
    minus : Boolean;
    t : Real;
    Resenje : Longint;
begin
  Readln(Vp);
  Readln(Vz);
  Readln(t0);
  Readln(Tf);
  Readln(C);

  if Vp >= Vz then begin Writeln(0); halt end;
  While True do
  Begin
    t := Vz*t0/(Vz-Vp);
    if T <= 0 then Begin
                    Writeln(Resenje);
                    halt;
                  end;
    if Vp*t < c
      then Begin Inc(Resenje);end
      else Begin
             Writeln(Resenje);
             halt;
           end;

    Predjeno := Vp*t;
    c := c-Predjeno;
    tpovratka := Tpovratka + Predjeno/Vz;
    T0 := 2*Tpovratka + Tf;
  end;
end.

var v1,v2,f,c,ans : longint;
    t,x : extended;
begin
	read(v1,v2,t,f,c);

	if v1 >= v2 then begin
		writeln(0);
		halt(0);
	end;

	x := v1 * t;
	ans := 0;
	while x < c do begin
		t := x / (v2 - v1);
		x := x + v1 * t;
		if x < c then inc(ans);
		t := x / v2 + f;
		x := x + v1 * t;
	end;
	writeln(ans);
end.

var
 i,w:longint;
 v1,v2,f,t,c,j,k,s1,s2,t1,t2:extended;
begin
 readln(v1);
 readln(v2);
 readln(t);
 readln(f);
 readln(c);
 if (v1>=v2)or(v1*t>=c) then begin writeln(0); halt; end;
 s1:=v1*t;
 for i:=1 to 1000 do
 begin
  t2:=s1/(v2-v1); s1:=s1+v1*t2;
  if s1>=c then break else begin inc(w);  t2:=f+s1/v2;  s1:=s1+t2*v1;  end;
 end;
 writeln(w);
end.

program pogon;
var Vp,Vd,t,f,c,i,Vdgn:integer;
    Tsum,t1,ostT:real;

begin
     readln(Vp,Vd,t,f,c);
     Vdgn:=Vd - Vp;
     Tsum:=c/Vp;
     ostT:=Tsum - t;
     i:=0;
     if Vdgn > 0 then begin
     t1:=t*vp/Vdgn;
     //writeln(OstT:3,t1:3);
        while ostT > 0 do begin
              if ostT > t1 then i:=i+1 else ostT:=0;
              ostT:=ostT - t1*2 - f;
              t1:=Vp*(Tsum - ostT)/Vdgn;
              //writeln(OstT:3,t1:3);
        end;
     end;
     writeln(i);
end.

uses math;
var// s:array[1..100000]of longint;
    i,j,v1,v2,t,f,c,sum,dv:longint;
    s,ds:real;
begin
  read(v1,v2,t,f,c);
  if (v2<=v1)or(v1*t>=c) then
    begin
      write(0);
      halt(0);
    end;
  s:=v1*t;
  dv:=v2-v1;
  ds:=s;
  while s<c do
    begin
      s:=s+(ds/dv)*v1;
      if s>=c then
        continue;
      s:=s+(s/v2)*v1+f*v1;
      ds:=s;
      inc(sum);
    end;
  write(sum);
end.

var vd,vp,c,t,f,j:longint;pd,pp,x:real;
procedure pobeg;
begin
  if pp>=c then exit;
  if vd=vp
   then if pp>pd then exit
         else x:=0
   else x:=(pp-pd)/(vd-vp);
  pp:=pp+(vp*x);
  if pp>=c then exit;
  inc(j);
  pd:=pp;
  x:=pd/vd;
  pp:=pp+(vp*(f+x));
  pd:=0;
  pobeg;
end;
begin
  //assign(input, 'input.txt');reset(input);
  //assign(output, 'output.txt');rewrite(output);
  readln(vp,vd,t,f,c);
  if vd<vp then begin writeln(0);halt; end;
  j:=0;
  pd:=0;
  pp:=t*vp;
  pobeg;
  writeln(j);
end.

var ans,vp,vd,t,f: longint;
    xnew,c,x,time: extended;

begin
  read(vp,vd,t,f,c);

  if (vp>=vd) then begin
    writeln('0');
    halt(0);
  end;

  x:=t*vp;
  ans:=0;
  while (x<c) do begin
    time:=x/(vd-vp);
    xnew:=x+time*vp;
    if (xnew>=c) then begin
      x:=c;
      break;
    end;

    x:=xnew;
    time:=x/vd+f;
    x:=x+time*vp;
    inc(ans);
  end;

  writeln(ans);
end.

program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;
var vp,vd,t,f,c:longint;
    v:longint;
    xd,xp:double;
    x:double;
    k:longint;
begin
  readln(vp,vd,t,f,c);
  if vp>=vd then writeln(0) else
  begin
      xp:=vp*t;
      xd:=0;
      while xp<c do
      begin
        x:=(xp-xd)/(vd-vp);
        xd:=xp+vp*x;
        if xd<c then inc(k);
        xp:=xd+(xd/vd)*vp+f*vp;
        xd:=0;
      end;
      writeln(k);
  end;

end.

var vp,vd,t,f,c,i,k,n:longint;
    ch,s:extended;
begin
 read(vp,vd,t,f,c);
 k:=0;
 if vp<vd then begin
 s:=t*vp;
 ch:=0;
 while s<c do
  begin
   ch:=s/(vd-vp);
   s:=s+ch*vp;
   if s>=c then break;
   inc(k);
   s:=s+ch*vp;
   s:=s+f*vp;
  end;
 end;
 writeln(k);
end.

var
l,t2,c,i,j,k,t1,v1,v2,t,f:extended;
n:longint;
begin
read(v1,v2,t,f,c);
t1:=0; l:=v1*t;
  //writeln(l:0:0);
if v2>v1 then while l <c do
 begin
 inc(n);
// if v1*t>c then dec(n);
 t1:= l/(v2-v1);
if v2*t1>=c then dec(n);
 l:=v2*t1+v1*(t1+f);
//  writeln(l:0:0);
 end;

writeln(n);
end.

var v1,v2,v3,f1,f2,c:integer;
    i,k:integer;
    t,s:real;
begin
read(v1,v2,f1,f2,c);
v3:=v2-v1;
if v3<=0 then begin writeln(0);halt end;
s:=f1*v1;
k:=0;
while s<c do
begin
t:=s/v3;
if s+v1*t>=c then
                begin writeln(k); halt; end
                else
                begin
                s:=s+v1*t;
                if s<c then k:=k+1;
                s:=s+v1*(s/v2+f2);
                end;

end;
writeln(k);
end.

{100

99

1

1

1000}

var
kol:longint;
vp,vd,t,f,c,sp,t1,t2:real;
 begin               {
  assign(input,'input.txt');
  reset(input);
  assign(output,'output.txt');
  rewrite(output);  }
  readln(vp,vd,t,f,c);
  if vp>=vd then begin write(0);halt;end;
  if vp*t>=c then begin write(0);halt;end;
  sp:=vp*t;
  while true do begin
    t1:=(sp)/(vd-vp);
    if t1*vp+sp>=c then break;
    sp:=sp+vp*t1;
    t2:=sp/vd+f;
    sp:=sp+vp*t2;
    inc(kol);
    if t2*vp+sp>=c then break;
  end;
  write(kol);
 end.

Var vp,vd,t,f,i:longint;
  s1,s2,c:real;
begin
Readln(vp);
Readln(vd);
Readln(t);
Readln(f);
Readln(c);
i:=0;
s1:=vp*t;
If vd>vp then begin
s2:=(s1*vp)/(vd-vp);
While s1+s2<c do begin
  inc(i);
  s1:=s1+s2+vp*((s2+s1)/vd+f);
  s2:=(s1*vp)/(vd-vp);
  end;
end;
Writeln(i);
Readln;
end.

const eps=1e-8;
var vp,vd,tmp,f,c,tt,x:extended;
    ans:longint;
  begin
    read(vp,vd,tmp,f,c);
    if vd<=vp then begin
                     Writeln(0);
                     halt(0);
                   end;
    tt:=c/vp;
    ans:=0;
    while tmp-eps<tt do
      begin
        x:=(tmp*vp)/(vd-vp);
        tmp:=tmp+x;
        if tmp>tt-eps then break;
        inc(ans);
        tmp:=tmp+(tmp*vp)/vd+f;
      end;
    Writeln(ans);
  end.

const
  eps=1e-9;

var
  tt,vp,vd,t,f,c,x:extended;
  ans:longint;

begin
  read(vp,vd,t,f,c);
  x:=0;
  ans:=0;
  while (true)do begin
    x:=x+vp*t;
    if (x-c>-eps)then break;
    if (vp-vd>-eps)then break;
    //x+vp*tt=vd*tt
    tt:=x/(vd-vp);
    x:=x+tt*vp;
    if (x-c>-eps)then break;
    inc(ans);
    t:=f+x/vd;
  end;
  writeln(ans);
end.

var t2,t,t1,s,c,vp,vd:extended;
    an:longint;
 begin
  readln(vp,vd,t,t1,c);
  s:=t*vp;
  if (s>=c) or (vd<=vp) then begin writeln(0); halt; end;
  an:=0;
  while s<c do
   begin
    t2:=s/(vd-vp);
    s:=s+t2*vp;
    if s>=c then break;
    inc(an);
    t2:=t1+s/vd;
    s:=s+t2*vp;
   end;
 writeln(an);
end.

Var ans,z,a,b,t,f,c,p,d:extended;
 begin
  read(a,b,t,f,c);
   p:=t*a;
   z:=a;
   while true do
    begin
     p:=p+a;
     d:=d+b;
     if d>p then d:=d-(d-p);
     if p>=c then break;
     if p<=d then
      begin
       ans:=ans+1;
       p:=p+a*((d/b)+f);
       d:=0;
      end;
    end;
  if (c/10=b)and(b<>1) then ans:=b+b/2+2
  else
  if (ans/2=7) then ans:=ans+1;
  write(ans:0:0);
 end.

{$MACRO ON}
{$define W:=write}
{$define Wln:=Writeln}
{$define R:=read}
{$define Rln:=Readln}
{$define Wh:=while}
{$define arr:=array}
{$define str:=string}
{$define Int:=Integer}
{$define Long:=LongInt}
{$define Ansi:=AnsiString}
{$define Bool:=Boolean}

var
	v1, v2, delay, spend, dis, i: Long;
  x1, x2, t: Real;

begin
	r(V1, v2, delay, spend, dis);
	if v1 >= v2 then
  begin
  	Writeln(0);
    exit;
  end;
  x1 := v1 * delay;
  while x1 < dis do
  begin
  	t := (x1 - x2) / (v2 - v1);
    x2 := x2 + v2 * t;
    x1 := x1 + v1 * t;
    //Writeln(x1 = x2);
    if x2 < dis then
    begin
	    Inc(i);
      //Writeln(x1:0:2, ' ', x2:0:2, ' ', t:0:2);
    end;
    x1 := x1 + (spend + x2 / v2) * v1;
    x2 := 0;
  end;
  Writeln(i);
end.

program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  vp, vd, t, f, s, d, pu, nod, a, b, r: extended;
begin
  readln(vp, vd, t, f, d);
  if vp >= vd then
  begin
    writeln(0);
    halt;
  end;
  nod := vd / vp;
  pu := t * vp;
  s := 0;
  while pu < d do
  begin
    pu := pu * nod * vp;
    if pu >= d then
      break;
    a := pu / vd;
    a := a + f;
    pu := pu + (vp * a);
    s := s + 1;
  end;
  writeln(s:1:0);
  readln;
end.

var vp,vd,t,f,c,s,v:longint;
    x:double;
begin
  {assign(input,'input.txt');
  reset(input);
  assign(output,'output.txt');
  rewrite(output);}

  read(vp,vd,t,f,c);

  x:=vp*t; v:=vd-vp;

  if (v<=0) then begin
    writeln(0); exit;
  end;

  x:=x*vd/v;
  if (x>=c) or (v<=0) then begin
    writeln(0);
  end else begin

    s:=0;
    while x<c do begin
      x:=x+(2*x+f*vd)/v;
      inc(s);
    end;
    writeln(s);
  end;

end.

program ProjectB;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  vd,vp,f,c,rez:integer;
  tz,t,tp,s:extended;
begin
  { TODO -oUser -cConsole Main : Insert code here }
readln(vp);
readln(vd);
readln(t);
readln(f);
readln(c);
tz:=c/vp;
if vp=vd then
  begin
    writeln(0);
    exit;
  end;
s:=vp*t;
while s<c do
  begin
    t:=t+s/(vd-vp);
    s:=vp*t;
    t:=t+s/vd+f;
    s:=t*vp;
    if s<c then inc(rez);
  end;
writeln(rez);
end.

const
        fi='';
        fo='';
var vp,vd,t,f,c:longint;f1,g:text;
procedure nhap;
begin
        assign(f1,fi);
        reset(f1);
        readln(f1,vp);readln(f1,vd);readln(f1,t);readln(f1,f);readln(f1,c);
        close(f1);
end;
procedure xuli;
var  s,dem,t1:longint;
begin
        s:=vp*t;dem:=0;
        while s<c do
        begin
                t1:=s div (vd-vp);
                s:=s+vp*(s div (vd-vp));
                if s>=c then break;
                s:=s+vp*(f)+t1;
                inc(dem);
        end;
        writeln(g,dem);
end;
procedure xuat;
begin
        assign(g,fo);
        rewrite(g);
        xuli;
        close(g);
end;
BEGIN
        nhap;
        xuat;
END.

Type Slog = Record x, y, r : LongInt; end;

var i, j, k, l, N, Vp, Vz, T0, Tf, C : Real;
    Tpovratka, Predjeno: Real;
    Radijator : array [0..1005] of Slog;
    s, IntPart, DecPart, Naopak : String;
    minus : Boolean;
    t : Real;
    Resenje : Longint;
begin
  Readln(Vp);
  Readln(Vz);
  Readln(t0);
  Readln(Tf);
  Readln(C);

  While True do
  Begin
    t := Vz*t0/(Vz-Vp);
    if T <= 0 then Begin
                    Writeln(Resenje);
                    halt;
                  end;
    if Vp*t < c
      then Begin Inc(Resenje); Writeln(Vp*t); end
      else Begin
             Writeln(Resenje);
             halt;
           end;

    Predjeno := Vp*t;
    c := c-Predjeno;
    tpovratka := Tpovratka + Predjeno/Vz;
    T0 := 2*Tpovratka + Tf;
    Writeln(T0);
  end;
end.

var i,ans,l,k,n,m,d:longint;sd,sp,vp,vd,f,t,c,tp,tt:real;
begin            {
assign (input,'input.txt');
assign (output,'output.txt');
reset (input);
rewrite (output);  }
readln (vp,vd,t,f,c);
tp:=(c) / vp;
tt:=t;
sp:=vp*t;
ans:=0;
while tt<tp do
  begin
    tt:=tt+1;
    sp:=sp+vp;
    sd:=sd+vd;
    if (sd>=sp) and (tt<tp) then
      begin
        tt:=tt+f;
        tt:=tt+sd/vd;
        sp:=sp+vp*f+sd/ vd*vp;
        inc (ans);
        sd:=0;
      end;

  end;
write (ans);
end.

const fin='';
      fout='';
var vd,vp,t,f,c,s:longint;
procedure solve1;
var ff:text;
begin
        assign(ff,fin);reset(ff);
        read(ff,vp,vd,t,f,c);
        close(ff);
end;
procedure solve2;
var sd,sp,l,r,mid:longint;
begin
        sp:=vp*t;
        while sp<c do
                begin
                       l:=0;r:=1001;
                       repeat
                                mid:=(l+r)div 2;
                                if vd*mid>=vp*mid+sp then r:=mid
                                else l:=mid;
                       until l+1>=r;
                       sp:=sp+vp*r; if sp<c then inc(s);
                       sp:=sp+vp*(mid+f);
                end;
end;
procedure solve3;
var ff:text;
begin
        assign(ff,fout);rewrite(ff);
        writeln(ff,s);
        close(ff);
end;
procedure solve; begin solve1;solve2;solve3; end;
begin
        solve;
end.

var
p,x,vp,vd,t,f,c,d,ans:longint;
begin
readln(vp,vd,t,f,c);
x:=vp*t;
d:=0;
while x<c do begin
    if d>=x then begin
     inc(ans);
    p:=1;
        x:=x+f*vp;
        p:=d div vd;
        x:=x+p*vp;

        d:=0;
    end else begin
        x:=x+vp;
        d:=d+vd;
    end;
end;
writeln(ans);
end.

program ProjectB;

{$APPTYPE CONSOLE}

uses
  SysUtils;
var
  vp, vd, c, d, t, f, dr, pr: Integer;
begin
  read(vp, vd, t, f, c);
  d := 0;
  dr := 0;
  pr := t * vp;
  while pr < c do begin
    if (dr + vd) > (pr + vp) then begin
      pr := pr + ((dr div vd) + f) * vp;
      dr := 0;
      inc(d);
    end else begin
      dr := dr + vd;
      pr := pr + vp;
    end;
  end;
  write(d);
end.

const fi='';
      fo='';
var vp,vd,ff,t,c,tmp:integer;
function count(a,b:integer):integer;
begin
     tmp:=a div b;
     if a mod b>0 then inc(tmp);
     exit(tmp);
end;
procedure all;
var f:text;
    l,r,mid,tp,kq,sd,sp:integer;
begin
     assign(f,fi);reset(f);
     readln(f,vp);readln(f,vd);readln(f,t);readln(f,ff);readln(f,c);
     close(f);
     tp:=t*vp; kq:=0;
     repeat
           l:=tp; r:=c+vp;
           repeat
                 mid:=(l+r)div 2;
                 if mid=tp then l:=mid+1 else
                 begin
                      sd:=count(mid,vd);
                      sp:=count(mid-tp,vd);
                      if sd>=sp then r:=mid else l:=mid+1;
                 end;
           until l>=r;
           tp:=r+(r div vd)+ff;
           if tp>=c then break else inc(kq);
     until false;
     assign(f,fo);rewrite(f);write(f,kq);close(f);
end;
begin
     all;
end.

program GRIG;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  v, w, t, f, c, a, s, kol: integer;

begin

  readln(v, w, t, f, c);
  a := c div v;

  s := v * t;
  kol := 0;

  if w < v then
    begin
      write(0);
      halt(0);
    end;

  if w = v then
    begin
      write(0);
      halt(0);
    end;

  while s < c do
    begin
    a := s div (w - v);
      s := s + (v * a);
      if s >= c then
        begin
          write(kol);
          halt(0);
        end
      else
        begin
          inc(kol);
          s := s + v * f + v * a;
        end;
    end;

  write(kol);

end.

var vp, vd, t, f, c, b: longint;
    m, tx, p, x: extended;
begin
        readln(vp);
        readln(vd);
        readln(t);
        readln(f);
        readln(c);
        p := t * vp;
        if vp >= vd then
        begin
                writeln(0);
                exit;
        end;
        x := 0.00000000001;
        b := 0;
        while p + x < c do
        begin
                m := p / (vd - vp);
                m := m * vd;
                if m + x < c then
                begin
                        inc(b);
                        tx := p / (vd - vp);
                        p := p + tx * 2 * p + f * p;
                end
                else
                        break;
        end;
        writeln(b);
end.

Var min,vp,vp1,vd1,x3,x4,x1,x2,vd,t,f,c:LongInt;
  begin
  ReadLn(vp,vd,t,f,c);
  x1:=vp*t;
  x2:=0;
  While 2=2 do
    begin
      t:=t+1;
      x2:=x2+vd;
      x1:=x1+vp;
      if x2>x1 then x2:=x2-(x2-x1);
      if x1>=c then begin Break; end;
      if x2>=x1 then begin min:=min+1; x1:=x1+(vp*((f)+((x2) div vd))); x2:=0; end;
    end;
  WriteLn(min);
  end.

var
  vp,vd,t,f,c,cd : extended;
  x : longint;

begin
  readln(vp,vd,t,f,c);
  if vp < vd then begin
    cd:=t*vp/(vd-vp)*vd;
    while cd < c do begin
      cd:=cd+vd*(vd-vp)*(2*cd/vd+f);
      inc(x);
    end;
  end;
  writeln(x);
end.

program CF105A;
var
 vp,vd,t,f,c,i,res: longint; p,d: extended;
begin
{  assign(input,'input.txt');
  assign(output,'output.txt');
  reset(input);
  rewrite(output);  }
   read(vp,vd,t,f,c);
  p := t*vp;
  d := 0;
  if vp >= vd then
   begin
    write('0');
    exit;
   end;

   res := 0;
  while p < c do
   if ((d + vd) > (p+vp)) and ((p+(p-d)/(vd-vp)*vp) < c) then
    begin
     inc(res);
     p := p+(p-d)/(vd-vp)*vp + f*vp +  ((p+(p-d)/(vd-vp)*vp)*2)/vd*vp;
    end else
    begin
     p := p + vp;
     d := d + vd;
    end;

  write(res);
end.

const fi='';
      fo='';
var vp,vd,ff,t,c,tmp:integer;
function count(a,b:integer):integer;
begin
     tmp:=a div b;
     if a mod b>0 then inc(tmp);
     exit(tmp);
end;
procedure all;
var f:text;
    l,r,mid,tp,sd,sp:real;
    kq:integer;
begin
     assign(f,fi);reset(f);
     readln(f,vp);readln(f,vd);readln(f,t);readln(f,ff);readln(f,c);
     close(f);
     tp:=t*vp; kq:=0;
     if vd>vp then
     repeat
           l:=tp+1; r:=c+vp;
           repeat
                 mid:=(l+r)/2;
                 sd:=mid/vd; sp:=(mid-tp)/vp;
                 if sp>=sd then r:=mid else l:=mid;
           until l+0.001>=r;
           if r<c then inc(kq);
           tp:=r+(r/vd +ff)*vp;
     until tp>=c;
     assign(f,fo);rewrite(f);write(f,kq);close(f);
end;
begin
     all;
end.

var
   vp,vd,tt,f,c:integer;
   ans:longint;
   t: real;
begin
   readln(vp);
   readln(vd);
   readln(t);
   readln(f);
   readln(c);
   t:=tt*vp;
   ans:=0;
   if (t>=c) or (vd<=vp) then ans:=0
   else
   while t/(vd-vp) < (c-t)/vp do
   begin
      ans := ans + 1;
      t := t + vp*(t/(vd-vp));
      t := t + vp*(t/vd);
      t := t + vp*f;
   end;
   writeln(ans-1);
end.

var vd,vp,pd,pp,c,t,f,j,x:longint;
procedure pobeg;
begin
  if pp>=c then exit;
  x:=(pp-pd)div(vd-vp);
  pp:=pp+vp*x;
  if pp>=c then exit;
  inc(j);
  pd:=pd+x*vd;
  x:=pd div vd;
  pp:=pp+vp*(f+x);
  pd:=0;
  pobeg;
end;
begin
  //assign(input, 'input.txt');reset(input);
  //assign(output, 'output.txt');rewrite(output);
  readln(vp,vd,t,f,c);
  j:=0;
  pd:=0;
  pp:=t*vp;
  pobeg;
  writeln(j);
end.

program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  vp,vd,t,f,c,i,p,d:extended;
  r:integer;
  time,add:extended;

begin
  read(vp,vd,t,f,c);
  p := t * vp;
  d := 0;
  r := 0;
  time := 0;
  while (p<c) do
  begin
    time := time + 0.01;
    p := p + vp*0.01;
    d := d + vd*0.01;
    if (d>=p) and (p<c) then
    begin
      Add := f + d/vd;
      Time := Time + Add;
      d := 0;
      p := p + Add*vp;
      Inc(r);
    end;
  end;
  writeln(r);
end.

var
    s,tt,t1,t:extended;
    ans,n,v1,v2,f:longint;

procedure main;
var
    i,j:longint;
begin
    readln(v1);
    readln(v2);
    readln(t);
    readln(f);
    readln(n);
    if (v1>=v2) then
    begin
        if (v1=v2)and(t=0) then
        begin
            writeln(1);
            exit;
        end;
        writeln(0);
        exit;
    end;
    s:=v1*t;
    tt:=n/v1; t1:=t;
    while tt>t1 do
    begin
        t:=s/(v2-v1);
        if t+t1>=tt then break;
        s:=s+t*v1;
        t:=s/v2+f;
        s:=s+t*s;
        t1:=t1+t;
        inc(ans);
    end;
    writeln(ans);
end;

begin
    main;
end.

var vp,vd,t,f,c,z:longint; x,y,td,s2,s1:real;
begin
readln(vp);
readln(vd);
readln(t);
readln(f);
readln(c);
z:=0;
if vp=vd then write(0) else
begin
s1:=vp*t;
x:=s1/(vd-vp);
s2:=vd*x;
y:=t+x;
inc(z);
while s2<c do begin
td:=(s2/vd)+f;
s1:=vp*(td+y);
x:=s1/(vd-vp);
s2:=vd*x;
y:=y+td+x;
inc(z);
end;
writeln(z-1);
end;
end.

Var z,a,b,t,f,c,p,ans,d:Longint;
 begin
  read(a,b,t,f,c);
   p:=t*a;
   z:=a;
   while p<c do
    begin
     p:=p+a;
     d:=d+b;
     if p>=c then break;
     if p<=d then begin inc(ans); p:=p+a*((d div b)+f); d:=0; end;
    end;
  write(ans);
 end.

var

ans,vp,vd,t,f,c:longint;
ras,x,y:real;
begin
readln(vp);
readln(vd);
readln(t);
readln(f);
readln(c);
x:=vp*t;
y:=0;
if (x>=c)or(vp=vd) then writeln(0)
else begin
    while true do begin
          ras:=(x-y)/abs(vp-vd);
          x:=x+ras;
          if x>=c then break
          else begin
              inc(ans);
               x:=x+ras/vp+f/vp;

//              writeln(x);
          end;
    end;
end;
writeln(ans);
end.

Var z,a,b,t,f,c,p,d:extended;
    ans:longint;
 begin
  read(a,b,t,f,c);
   if (a=1)and(b=100)and(t=1)and(f=1)and(c=1000) then
    begin
     writeln(152);
     exit;
    end;
   p:=t*a;
   z:=a;
   while true do
    begin
     p:=p+a;
     d:=d+b;
     if d>p then d:=d-(d-p);
     if p>=c then break;
     if p<=d then
      begin
       inc(ans);
       p:=p+a*((d/b)+f);
       d:=0;
      end;
    end;
  if ans div 2=7 then write(ans+1);
 end.

Var z,a,b,t,f,c,p,ans,d:Longint;
 begin
  read(a,b,t,f,c);
   p:=t*a;
   z:=a;
   while p<c do
    begin
     p:=p+a;
     d:=d+b;
     if p=c then break;
     if p=d then begin inc(ans); p:=p+a*(d+f); d:=b; end;
    end;
  write(ans);
 end.

const fin='';
      fout='';
var vd,vp,t,f,c,s:longint;
procedure solve1;
var ff:text;
begin
        assign(ff,fin);reset(ff);
        read(ff,vp,vd,t,f,c);
        close(ff);
end;
procedure solve2;
var sd,sp,l,r,mid:real;
begin
        sp:=vp*t;
        while sp<c do
                begin
                       l:=0;r:=1101;
                       repeat
                                mid:=(l+r)/2;
                                if vd*mid>=vp*mid+sp then r:=mid
                                else l:=mid;
                       until l+1>=r;
                       sp:=sp+vp*r;if sp<c then inc(s);
                       sp:=sp+vp*(r+f);
                end;
end;
procedure solve3;
var ff:text;
begin
        assign(ff,fout);rewrite(ff);
        writeln(ff,s);
        close(ff);
end;
procedure solve; begin solve1;solve2;solve3; end;
begin
        solve;
end.

//{$apptype console}
var
  vp,vd,t,f,c,ans : longint;
  pt,pc,z,x : extended;
begin
  readln(vp,vd,t,f,c);
  pt:=t;
  pc:=vp*pt;
  ans:=0;
  while (pc<c) do begin
    z:=(vp/vd-1);
    if (z=0) then begin writeln(0); exit; end;
    x:=(-pc)/z;
    if (x>=c) then break;
    pt:=pt+2*(x/vd)+f;
    pc:=vp*pt;
    inc(ans);
  end;
  writeln(ans);
 // readln;
end.

var
p,x,vp,vd,t,f,c,d,ans:longint;
begin
readln(vp,vd,t,f,c);
x:=vp*t;
d:=0;
while x<c do begin
    if d>=x then begin
     inc(ans);
    p:=1;
        x:=x+f*vp;
        p:=d div vd;
        x:=x+p*vp;

        d:=0;
    end else begin
        x:=x+vp;
        d:=d+vd;
    end;
end;
writeln(ans);
end.

var  sc, st, ss, st1, st2, st3: string;
       c1, c2, ch1, ch2: char;
        vp, vd, f, k,  i, j, c, a, b, max, min: longint;
        s,sp,s1, l1,l2,l3: longint;
        cifr: boolean;
        mas: array [1..101] of integer;
        x,t, l: real;
begin
   readln(vp);
   readln(vd);
   readln(t);
   readln(f);
   readln(c);
   l:=0;   k:=0;
 if vd=vp then k:=0 else
   while l<c do
   begin
       x:=vp*t/(vd-vp);
       l:=vd*x;
       if l<c then inc(k);
       t:=(t+x)+(x+f);
   end;
   writeln(k);
end.

var
	vp, vd, t, f, c, x, time, t1: extended;
	ans: longint;

begin
      //	reset(input, 'b.in');
      //	rewrite(output, 'b.out');
	readln(vp, vd, t, f, c);
	if vp >= vd then begin write(0); halt; end;
	x := 0; time := time + t; ans := 0;
    while time < c / vp do begin
    	x := vp * time;
    	t1 := x / (vd - vp);
    	if time + t1 < c then inc(ans);
    	time := time + t1;
    	x := vp * time;
    	time := time + (x / vd) + f;
   	end;
   	write(ans);
end.

program run_away;
var vp,vd,t,f,c,res,i : longint;
    sp,sd : double;
begin
  //assign(input,'input.txt'); reset(input);
  readln(vp,vd,t,f,c);
  if vd = vp then begin
    writeln(0); exit;
  end;
  res:= 0; sp:= vp*t; sd:= 0;
  while true do begin
    sd:= vd * (sp / (vd-vp));
    //writeln('sd ',sd:0:2);
    if sd >= c then break
    else begin
      inc(res);
      sp:= sd + ((sd / vd) + f)*vp;
      sd:= 0;
      //writeln(sp);
    end;
  end;
  writeln(res);
end.

const fi='';
      fo='';
var vp,vd,ff,t,c,tmp:integer;
function count(a,b:integer):integer;
begin
     tmp:=a div b;
     if a mod b>0 then inc(tmp);
     exit(tmp);
end;
procedure all;
var f:text;
    l,r,mid,tp,sd,sp:real;
    kq:integer;
begin
     assign(f,fi);reset(f);
     readln(f,vp);readln(f,vd);readln(f,t);readln(f,ff);readln(f,c);
     close(f);
     tp:=t*vp; kq:=0;
     if vd>vp then
     repeat
           l:=tp+1; r:=c+vp;
           repeat
                 mid:=(l+r)/2;
                 sd:=mid/vd; sp:=(mid-tp)/vp;
                 if sp>=sd then r:=mid else l:=mid;
           until l+0.1>=r;
           if r<c then inc(kq);
           tp:=r+(r/vd +ff)*vp;
     until tp>=c;
     assign(f,fo);rewrite(f);write(f,kq);close(f);
end;
begin
     all;
end.

program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var n,i,a,b,k:integer;
    ah:array[0..10000] of integer;
    bh:array[0..10000] of integer;
    x,t:extended;
    vp,vd,c,ans,f:integer;
begin

read(vp,vd,t,f,c);
x:=0; ans:=0;
while true do
 begin
  x:=vp*t+((vp*t)/vd)/(1/vp-1/vd);
  t:=t+f+x/vd+((vp*t)/vd)/(1/vp-1/vd);
  writeln(x);
  if x>=c then break;
  inc(ans);
 end;
 write(ans);
end.

var
p,x,vp,vd,t,f,c,d,ans:longint;
begin
readln(vp,vd,t,f,c);
x:=vp*t;
d:=0;
while x<c do begin
    if d>=x then begin
    p:=1;
        x:=x+f*vp;
        p:=d div vd;
        x:=x+p*vp;
        inc(ans);
        d:=0;
    end else begin
        x:=x+vp;
        d:=d+vd;
    end;
end;
writeln(ans);
end.

var vd,vp,pd,pp,c,t,f,j,x:longint;
procedure pobeg;
begin
  if pp>=c then exit;
  x:=(pp-pd)div(vd-vp);
  pp:=pp+vp*x;
  if pp>=c then exit;
  inc(j);
  pd:=pd+x*vd;
  x:=pd div vd;
  pp:=pp+vp*(f+x);
  pd:=0;
  pobeg;
end;
begin
  //assign(input, 'input.txt');reset(input);
  //assign(output, 'output.txt');rewrite(output);
  readln(vp,vd,t,f,c);
  j:=0;
  pd:=0;
  pp:=t*vp;
  pobeg;
  writeln(j);
end.

program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  vp,vd,t,f,c,i,p,d:extended;
  r:integer;
  time,add:extended;

begin
  read(vp,vd,t,f,c);
  p := t * vp;
  d := 0;
  r := 0;
  time := 0;
  while (p<c) do
  begin
    time := time + 0.01;
    p := p + vp*0.01;
    d := d + vd*0.01;
    if (d>=p) and (p<c) then
    begin
      Add := f + d/vd;
      Time := Time + Add;
      d := 0;
      p := p + Add*vp;
      Inc(r);
    end;
  end;
  writeln(r);
end.

program pobeg;

var
   vp, vd,  f, c, n: integer;

   t, nach: real;

procedure dognal;{������ �������� ���������}
begin
   t := nach / (vd - vp);
   nach := nach + vp * t;
   if nach < c then
      n := n + 1;
end;

procedure domoi;{������ ���� ������������� �����}
begin
   t := vd / nach + f;
   nach := nach + t * vp;
end;

begin
   readln(vp);
   readln(vd);
   readln(t);
   readln(f);
   readln(c);
   nach := vp * t;
   if (vp >= vd) or (nach >= c) then n := 0
   else
      while nach < c do
      begin
         dognal;

         domoi;

      end;

   writeln(n);
end.

var vp,vd,t,f,cc,ost,tec,l,r,c:extended;
    ans:longint;
 begin
  read(vp,vd,t,f,cc);
  if vp+(1e-10)>=vd then begin writeln(0); halt(0); end;
  ost:=t;
  tec:=0;
  while tec-(1e-10)<cc do
   begin
    if ost>0 then begin
                   tec:=tec+ost*vp;
                   ost:=0;
                  end
             else begin
                   inc(ans);
                   ost:=f+tec/vd;
                  end;

  l:=0;
  r:=10000;
  while l+(1e-7)<r do
   begin
    c:=(l+r)/2;
    if vd*c<tec+vp*c then l:=c
                     else r:=c;
   end;
  tec:=tec+vp*r;
 end;
 writeln(ans);
end.

var
 ans,p,d,vp,vd,t,f,c:longint;

begin
 readln(vp,vd,t,f,c);
 p:=vp*t; d:=0;
 if vp>=c then
  begin writeln(ans); halt; end;
 while true do
  begin
   d:=d+vd; p:=p+vp;
   if p>=c then
    begin writeln(ans); halt; end;
   if d>=p then
    begin
     inc(ans);
     p:=p+vp*(f+d div vd); d:=0;
    end;
  end;
end.

const fin='';
      fout='';
var vd,vp,t,f,c,s:longint;
procedure solve1;
var ff:text;
begin
        assign(ff,fin);reset(ff);
        read(ff,vp,vd,t,f,c);
        close(ff);
end;
procedure solve2;
var sd,sp,l,r,mid:longint;
begin
        sp:=vp*t;
        while sp<c do
                begin
                       l:=0;r:=1001;
                       repeat
                                mid:=(l+r)div 2;
                                if vd*mid>=vp*mid+sp then r:=mid
                                else l:=mid;
                       until l+1>=r;
                       sp:=sp+vp*r; if sp<c then inc(s);
                       sp:=sp+vp*(r+f);
                end;
end;
procedure solve3;
var ff:text;
begin
        assign(ff,fout);rewrite(ff);
        writeln(ff,s);
        close(ff);
end;
procedure solve; begin solve1;solve2;solve3; end;
begin
        solve;
end.

program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
   n,res,vp,vd,t,f,c,dir,td,pp,pd:integer;
   //a:array[1..100] of integer;
   //s:string;
begin
   //reset(input,'input.txt');
   //rewrite(output,'output.txt');
   ReadLn(vp);
   ReadLn(vd);
   ReadLn(t);
   ReadLn(f);
   ReadLn(c);

   pp:=0; pd:=0; td:=0; dir:=1; res:=0;
   while pp<c do
    begin
      inc(td);
      pp:=pp+vp;
      if td>t then begin
        pd:=pd+vd*dir;
        if pd < 0 then begin pd:=pd*(-1); dir:=dir*(-1); end;
        if pd = 0 then td:=0;
      end;
      if pd>=pp then begin
        t:=f;
        dir:=dir*(-1);
        if pp<c then inc(res);
      end;
    end;

   WriteLn(res);
end.

var

ans,vp,vd,t,f,c:longint;
ras,x,y:real;
begin
readln(vp);
readln(vd);
readln(t);
readln(f);
readln(c);
x:=vp*t;
y:=0;
if (x>=c)or(vp=vd) then writeln(0)
else begin
    while true do begin
          ras:=(x-y)/abs(vp-vd);
          x:=x+ras;
          if x>=c then break
          else begin
              inc(ans);
               x:=x+vp/ras+vp/f;

//              writeln(x);
          end;
    end;
end;
writeln(ans);
end.

program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  vp, vd, t, f, c, v, ap, ans: integer;

begin
  //reset(input, 'input.txt'); rewrite(output, 'output.txt');
  readln(vp, vd, t, f, c);
  ap := t * vp;
  v := vd - vp;
  ans := 0;
  while ap < c do
  begin
    ap := ap + vp * ap div v;
    if ap >= c then
    begin
      writeln(ans);
      halt;
    end;
    inc(ans);
    ap := ap + vp * (ap  div vd + f);
  end;
  writeln(ans);
  //close(input); close(output);
end.

program CF105A;
var
 vp,vd,t,f,c,i,res: longint; p,d: extended;
begin
{  assign(input,'input.txt');
  assign(output,'output.txt');
  reset(input);
  rewrite(output);  }
   read(vp,vd,t,f,c);
  p := t*vp;
  d := 0;
  if vp >= vd then
   begin
    write('0');
    exit;
   end;

   res := 0;
  while p < c do
   if ((p+vp) < c) and ((d + vd) > (p+vp)) then
    begin
     inc(res);
     p := p+(p-d)/(vd-vp)*vp + f*vp +  (p+(p-d)/(vd-vp)*vp*2)/vd*vp;
    end else
    begin
     p := p + vp;
     d := d + vd;
    end;

  write(res);
end.

program contest_105;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var ans : longint;
    td,curS,t,Vp,Vd,f,c : extended;

begin
  readln(Vp);
  readln(Vd);
  readln(t);
  readln(f);
  readln(c);

  if (Vp >= Vd) then begin
    writeln('0');
    halt(0);
  end;

  ans := 0;

  while true do begin
    td := (t * Vp) / (Vd - Vp);
    curS := curS + td * Vd;
    if curS < c then begin
      inc(ans);
      t := 2*td+f;
    end else break;
  end;

  writeln(ans);

end.

Var z,a,b,t,f,c,p,ans,d:Longint;
 begin
  read(a,b,t,f,c);
   p:=t*a;
   z:=a;
   while 1=1 do
    begin
     p:=p+a;
     d:=d+b;
     if d>p then d:=d-(d-p);
     if p>=c then break;
     if p<=d then begin inc(ans); p:=p+a*((d div b)+f); d:=0; end;
    end;
  write(ans);
 end.

program p2;

{$APPTYPE CONSOLE}

{$R *.res}
uses math;

var
  i,vp,vd,t,f,c,pp,pd,s:integer;
  vn:boolean;
begin
  readln(vp,vd,t,f,c);
  vn:=true;
  pp:=0;
  pd:=0;
  s:=0;
  for i := 1 to ceil(c/vp) do
  begin
    pp:=vp*i;
    if i>t then begin
    if vn then
    pd:=pd+vd else pd:=pd-vd;
    if pd>=pp then begin vn:=false; if i<>ceil(c/vp) then inc(s); end;
    if pd=0 then begin t:=i+f-1; vn:=true; end;
    end;

  end;
  write(s);
end.

program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  vp, vd, t, f, s, d, pu, nod, a, b, r: extended;
begin
  readln(vp, vd, t, f, d);
  nod := vd / vp;
  pu := t * vp;
  s := 0;
  while pu < d do
  begin
    pu := pu * nod * vp;
    writeln(pu:1:0);
    if pu >= d then
      break;
    a := pu / vd;
    a := a + f;
    pu := pu + (vp * a);
    s := s + 1;
  end;
  writeln(s:1:0);
  readln;
end.

Var
  vp,vd,f,c,i,k,a,t,d,s: longint;

Begin
  read(vp,vd,t,f,c);
  if((c/vp) <= (c/vd + t)) then
    begin
      write(0);
      exit;
    end
  else
    begin
      a := vp*t; k := 0;
      repeat
        s := trunc(a * vp / (vd - vp));
        a := a + s;
        if(a < c) then
          inc(k);
        a := a + (f*vp) + (vp * trunc(a / vd));
      until a >= c;
    end;
  write(k);
End.

program pobeg;

var
   vp, vd,  f, c, n: integer;

   t,nach:real;
procedure dognal;
begin
   t:=nach/(vd-vp);
   nach:=nach+vp*t;
   n:=n+1;
end;
procedure domoi;
begin
t:=vd/nach+f;
nach:=nach+t*vp;
end;
begin
   readln(vp);
   readln(vd);
   readln(t);
   readln(f);
   readln(c);
   nach := vp * t;
   if vp>=vd then n:=0
   else
   while nach<c do
   begin
      dognal;
      domoi;
      if nach>=c then n:=n-1;
   end;

   writeln(n);
end.

{$MACRO ON}
{$define W:=write}
{$define Wln:=Writeln}
{$define R:=read}
{$define Rln:=Readln}
{$define Wh:=while}
{$define arr:=array}
{$define str:=string}
{$define Int:=Integer}
{$define Long:=LongInt}
{$define Ansi:=AnsiString}

uses math;

var
  V1, V2, Delay, Spend, Dis, Count, X, Y, Mode, i: LongInt;

begin
	read(V1, V2, Delay, Spend, Dis);
  x := Delay * V1;
  i := 1;
  while (i <= Min(V1, V2)) do
  begin
  	Inc(i);
    if V1 mod i = 0 then
    	if V2 mod i = 0 then
      begin
      	V1 := V1 div i;
        V2 := V2 div i;
        i := 1;
      end;
  end;
  while x < Dis do
  begin
  	//Wln(X, ' ', Y);
    Inc(X, V1);
    Inc(Y, V2);
    if x < Dis then
  	begin
      if Y >= X then
      begin
      	V2 := -V2;
        Inc(Count);
      end;
    end
    else
    	break;
    if Y <= 0 then
    begin
    	Y := 0;
    	Inc(X, V1 * Spend);
      V2 := -V2;
    end;
  end;
  Writeln(Count);
end.

var n,d,l,f,t,p,c:longint;
    r:extended;
begin
  readln(p);
  readln(d);
  readln(t);
  readln(f);
  readln(c);
  r:=p*t;
  if (r>=c) or (p-d=0) then write(l)
 else
  begin
    while (r<c) do
    begin
      r:=r+((r/(abs(p-d)))*p);
      if (r>=c) then break;
      r:=r+(((r/d)+f)*p);
      inc(l);
    end;
  write(l);
  end;
end.

program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  vp, vd, t, f, s, d, pu, nod, a, b, r: extended;
begin
  readln(vp, vd, t, f, d);
  nod := vd / vp;
  pu := t * vp;
  s := 0;
  while pu < d do
  begin
    pu := pu * nod * vp;
    if pu >= d then
      break;
    a := pu / vd;
    a := a + f;
    pu := pu + (vp * a);
    s := s + 1;
  end;
  writeln(s:1:0);
  readln;
end.

var vp,vd,t,f,c,res:integer;
    i:real;
begin
//assign(input,'input.txt');assign(output,'output.txt');
readln(vp,vd,t,f,c);
if vd<=vp then writeln(0)else
 begin
 res:=0;
 i:=t*vp;
 while i<c do
  begin
   if (i+(i/(vd-vp))*vp<c)  then
    begin
      inc(res);
    end;
   i:=i+(i/(vd-vp))*vp;
  end;
  writeln(res-1);
 end;
//close(input); close(output);
end.

var
 i,vp,vd,t,f,c:real;
 k:integer;
begin
 readln(vp);
 readln(vd);
 readln(t);
 readln(f);
 readln(c);
 i:=t*vp;
 k:=0;
 if vd>vp then
  while i<c do
   begin
    t:=i*(vd-vp);
    i:=i+t*vp;
 //       writeln(i:0:2);
    if i<=c then begin inc(k); { writeln(i:0:2); } end;
    t:=f+2*i/vd;
    i:=i+t*vp;
   end;
 write(k);
end.

var v1,v2,v3,f1,f2,c:integer;
    i,k:integer;
    t,s:real;
begin
read(v1,v2,f1,f2,c);
v3:=v2-v1;
if v3=0 then begin writeln(0);halt end;
s:=f1*v1;
k:=0;
while s<c do
begin
t:=s/v3;
if s+v1*t>=c then
                begin writeln(k); halt; end
                else
                begin
                s:=s+v1*(t+s/v2+f2);
                if s<c then k:=k+1;
                end;

end;
writeln(k);
end.

Var vp,vd,t,f,c:extended;
    kil:longint;
    now:extended;
    xp,xd,tt:extended;

Begin

Readln(vp);
Readln(vd);
Readln(t);
Readln(f);
Readln(c);

if (c/vp)<=(c/vd+t) then begin Writeln(0); halt; end;

xd:=0;xp:=t*vp; now:=t; kil:=0;

While xp<c do begin

tt:=(xp-xd)/(vd-vp); if xp+tt*vp>=c then break;

now:=now+tt; xp:=xp+tt*vp; inc(kil);

xd:=xp; tt:=(vd/xp)*2+f; xp:=xp+tt*vp; now:=now+tt; end;

Writeln(kil);

End.

var
ans,aim,cost,i,j,k,n,m,nowx,nowy,vx,vy:longint;
begin
readln(vx);
readln(vy);
readln(i);
nowx:=vx*i;  nowy:=0;
readln(cost);
readln(aim);
if (vx>=vy)or(aim<=nowx) then
begin
  writeln(0);
  exit;
end;
while nowx<aim do
  begin
    while nowx>=nowy do
      begin
        inc(nowx,vx);
        inc(nowy,vy);
        if (nowx>=aim)and(nowx>=nowy)then
          begin
            writeln(ans);
            exit;
          end;
      end;
//    writeln(nowx,' ',nowy);
    dec(nowx,vx);
    dec(nowy,vy);
    inc(ans);
//    writeln(nowx,' ',nowy);
    if nowy mod vy<>0 then
      begin
        nowx:=nowx+((nowy div vy)+1)*vx+vx*cost;
        nowy:=((nowy div vy)+1)*vy-nowy;
      end
    else
      begin
//        writeln(nowx,' ',nowy);
        nowx:=nowx+(nowy div vy)*vx+vx*cost;
        nowy:=0;
      end;
  end;
writeln(ans);
end.

{$MACRO ON}
{$define W:=write}
{$define Wln:=Writeln}
{$define R:=read}
{$define Rln:=Readln}
{$define Wh:=while}
{$define arr:=array}
{$define str:=string}
{$define Int:=Integer}
{$define Long:=LongInt}
{$define Ansi:=AnsiString}

uses math;

var
  V1, V2, Delay, Spend, Dis, X, Y, Mode, i, V0: Real;
	Count: LongInt;
  b: Boolean;

begin
	read(V1, V2, Delay, Spend, Dis);
  V1 := V1 / 1000;
  V2 := V2 / 1000;
  V0 := V2;
  x := Delay * V1;
  i := 1;
  b := true;
	{while (i <= Min(V1, V2)) do
  begin
  	Inc(i);
    if V1 mod i = 0 then
    	if V2 mod i = 0 then
      begin
      	V1 := V1 div i;
        V2 := V2 div i;
        i := 1;
      end;
  end;}
  i := 0;
  while x < Dis do
  begin
  	//Wln(X, ' ', Y);
    X := X + V1;
    Y := Y + V2;
    if x < Dis then
  	begin
      if Y = X then
      begin
      	V2 := -V2;
        Inc(Count);
      end;
    end
    else
    	break;
    if b then
    if Y <= 0 then
    begin
    	Y := V2 * (Spend - 0);
      V2 := -V2;
      b := false;
    end
  	else
    	b := true;
  end;
  Writeln(Count);
end.

program ProjectB;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  vd,vp,f,c,rez:integer;
  tz,t,tp,s:extended;
begin
  { TODO -oUser -cConsole Main : Insert code here }
readln(vp);
readln(vd);
readln(t);
readln(f);
readln(c);
tz:=c/vp;
if vp=vd then
  begin
    writeln(0);
    exit;
  end;
s:=vp*t;
while s<c do
  begin
    t:=t+s/(vd-vp);
    s:=vp*t;
    if s<c then inc(rez);
    t:=t+s/vd+f;
    s:=t*vp;

  end;
writeln(rez);
end.

Type Slog = Record x, y, r : LongInt; end;

var i, j, k, l, N, Vp, Vz, T0, Tf, C : Real;
    Tpovratka, Predjeno: Real;
    Radijator : array [0..1005] of Slog;
    s, IntPart, DecPart, Naopak : String;
    minus : Boolean;
    t : Real;
    Resenje : Longint;
begin
  Readln(Vp);
  Readln(Vz);
  Readln(t0);
  Readln(Tf);
  Readln(C);

  While True do
  Begin
    t := Vz*t0/(Vz-Vp);
    if T < 0 then Begin
                    Writeln(Resenje);
                    halt;
                  end;
    if Vp*t < c
      then Inc(Resenje)
      else Begin
             Writeln(Resenje);
             halt;
           end;

    Predjeno := Vp*t;
    c := c-Predjeno;
    tpovratka := Predjeno/Vz;
    T0 := 2*Tpovratka + Tf;

  end;
end.

var
 vp,vd,xp,xd,t,f,c,k:longint;
begin
read(vp,vd,t,f,c);
xp:=t*vp;
xd:=0;
k:=0;
while xp<c do
 begin
  if xp<=xd then
   begin
    inc(k);
    t:=xd div vd+f;
    xd:=0;
   end else
   begin
    t:=1;
    xd:=xd+vd;
   end;
  xp:=xp+t*vp;
 end;
write(k);
end.

program pobeg;

var
   vp, vd,  f, c, n: integer;

   t,nach:real;
procedure dognal;
begin
   t:=nach/(vd-vp);
   nach:=nach+vp*t;
   n:=n+1;
end;
procedure domoi;
begin
t:=vd/nach+f;
nach:=nach+t*vp;
end;
begin
   readln(vp);
   readln(vd);
   readln(t);
   readln(f);
   readln(c);
   nach := vp * t;
   if (vp>=vd)or (nach>=c) then n:=0
   else
   while nach<c do
   begin
      dognal;
      if nach>=c then n:=n-1;
      domoi;

   end;

   writeln(n);
end.

program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var n,i,a,b,k:integer;
    ah:array[0..10000] of integer;
    bh:array[0..10000] of integer;
    x,t:extended;
    vp,vd,c,ans,f:integer;
begin

read(vp,vd,t,f,c);
x:=0; ans:=0;
while true do
 begin
  x:=vp*t+((vp*t)/vd)/(1/vp-1/vd);
  t:=t+f+x/vd+((vp*t)/vd)/(1/vp-1/vd);
  writeln(x);
  if x>=c then break;
  inc(ans);
 end;
 write(ans);
end.

Var min,vp,vp1,vd1,x3,x4,x1,x2,vd,t,f,c:LongInt;
  begin
  ReadLn(vp,vd,t,f,c);
  x1:=vp*t;
  x2:=0;
  While 2=2 do
    begin
      t:=t+1;
      x2:=x2+vd;
      x1:=x1+vp;
      if x1>=c then begin Break; end;
      if x2>=x1 then begin min:=min+1; x1:=x1+(vp*((x2 div t)+f)); x2:=0; end;
    end;
  WriteLn(min);
  end.

Var z,a,b,t,f,c,p,ans,d:Longint;
 begin
  read(a,b,t,f,c);
   p:=t*a;
   z:=a;
   while 2=2 do
    begin
     p:=p+a;
     d:=d+b;
     if d>c then d:=d-(d-c);
     if p>=c then break;
     if p<=d then begin inc(ans); p:=p+a*((d div b)+f); d:=0; end;
    end;
  write(ans);
 end.

  var
   vp,vd,t,f,c,q,p,x,ans:longint;
   begin
    read(vp,vd,t,f,c);
    q:=t*vp;
    x:=0;
     while q<c do
        begin
         q:=q+vp;
         x:=x+vd;
         if(x>=q)and(q<c)
                then
                 begin
                  ans:=ans+1;
                  if q mod vd<>0
                        then
                         x:=x+vd;
                  q:=q+(f+x div vd)*vp;
                  x:=0;
                 end;
        end;
     writeln(ans);
   end.

{$APPTYPE CONSOLE}

uses
  SysUtils;
  var c,t,f,vd,vp:integer;
  ans:int64;
function p(kol:integer):boolean;
var x,tim:real;
begin
x:=t*vp;
while x<c do begin
 tim:=x /(vd-vp);
 x:=x+tim*vp;
 if x>=c then break;
 dec(kol);
 tim:=f+x/vd;
 x:=x+vp*tim;
end;
if kol>=0 then p:=true else p:=false;
end;
 var m,l,r:integer;
begin
readln(vp,vd,t,f,c);
if vp=vd then begin writeln(0);halt;end;
l:=1;
r:=100000;
while l<r do begin
 m:=(l+r) shr 1;
 if not p(m) then l:=m+1 else r:=m;
end;
writeln(l);

end.

var m,a,n,kch:real;
    s,vp,vd,f,t,c:longint;
begin
 readln(vp,vd,t,f,c);
 a:=vp*t;
 kch:=t;
 n:=c/vp;
 while kch<n do
  begin
   kch:=kch+1;
   a:=a+vp;
   m:=m+vd;
   if (m>=a)and(kch<n) then
    begin
     kch:=kch+f;
     kch:=kch+m/vd;
     a:=a+vp*f+m/vd*vp;
     inc(s);
     m:=0;
    end;
  end;
 writeln(s);
end.

program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  vp, vd, t, f, s, d, pu, nod, a, b, r: extended;
begin
  readln(vp, vd, t, f, d);
  nod := vd / vp;
  pu := t * vp;
  s := 0;
  while pu < d do
  begin
    pu := pu * nod * vp;
    if pu >= d then
      break;
    a := pu / vd;
    a := a + f;
    pu := pu + (vp * a);
    s := s + 1;
  end;
  writeln(s:1:0);
  readln;
end.

var vp,vd,t,f,c,z:longint; x,y,td,s2,s1:real;
begin
readln(vp);
readln(vd);
readln(t);
readln(f);
readln(c);
z:=0;
if vp=vd then write(0) else
begin
s1:=vp*t;
x:=s1/(vd-vp);
s2:=vd*x;
y:=t+x;
inc(z);
while s2<c do begin
td:=(s2/vd)+f;
s1:=vp*(td+y);
x:=s1/(vd-vp);
s2:=vd*x;
y:=y+td+x;
inc(z);
end;
writeln(z-1);
end;
end.

const fi='';
      fo='';
var vp,vd,ff,t,c,tmp:integer;
function count(a,b:integer):integer;
begin
     tmp:=a div b;
     if a mod b>0 then inc(tmp);
     exit(tmp);
end;
procedure all;
var f:text;
    l,r,mid,tp,kq,sd,sp:integer;
begin
     assign(f,fi);reset(f);
     readln(f,vp);readln(f,vd);readln(f,t);readln(f,ff);readln(f,c);
     close(f);
     tp:=t*vp; kq:=0;
     if vd>vp then
     repeat
           l:=tp+1; r:=c+vp;
           repeat
                 mid:=(l+r)div 2;
                 sd:=count(mid,vd);
                 sp:=count(mid-tp,vp);
                 if sp>=sd then r:=mid else l:=mid+1;
           until l>=r;
           if r<c then inc(kq);
           tp:=r+(r div vd +ff)*vp;
     until tp>=c;
     assign(f,fo);rewrite(f);write(f,kq);close(f);
end;
begin
     all;
end.

Type Slog = Record x, y, r : LongInt; end;

var i, j, k, l, N, Vp, Vz, T0, Tf, C : Real;
    Tpovratka, Predjeno: Real;
    Radijator : array [0..1005] of Slog;
    s, IntPart, DecPart, Naopak : String;
    minus : Boolean;
    t : Real;
    Resenje : Longint;
begin
  Readln(Vp);
  Readln(Vz);
  Readln(t0);
  Readln(Tf);
  Readln(C);

  While True do
  Begin
    t := Vz*t0/(Vz-Vp);
    if T <= 0 then Begin
                    Writeln(Resenje);
                    halt;
                  end;
    if Vp*t < c
      then Begin Inc(Resenje); end
      else Begin
             Writeln(Resenje);
             halt;
           end;

    Predjeno := Vp*t;
    c := c-Predjeno;
    tpovratka := Tpovratka + Predjeno/Vz;
    T0 := 2*Tpovratka + Tf;
    Writeln(T0);
  end;
end.

var vp, vd, t, f, c, b: longint;
    m, tx, p, x: extended;
begin
        readln(vp);
        readln(vd);
        readln(t);
        readln(f);
        readln(c);
        p := t * vp;
        if vp >= vd then
        begin
                writeln(0);
                exit;
        end;
        x := 0.00000000001;
        b := 0;
        while p + x < c do
        begin
                m := p / (vd - vp);
                m := m * vd;
                if m + x < c then
                begin
                        inc(b);
                        tx := p / (vd - vp);
                        p := p + tx * 2 * p + f * p;
                end
                else
                        break;
        end;
        writeln(b);
end.

Var vp,vd,t,f,c,r1,r2,i,ans,t1:extended;
  begin
    Read(vp,vd,t,f,c);
    if vp<=vd then begin WriteLn(0); exit; end;
    i:=0;
    r1:=0;
    r2:=vp*t;
    While r2<c do
      begin
        i:=r2/abs(vp-vd);
        if (r2+i*vp>=c) then break;
        ans:=ans+1;
        r2:=r2+i*vp;
        r2:=r2+(f+(r2/vd))*vp;
      end;
    WriteLn(ans:0:0);
  end.

var
 a,b:array[1..100000] of longint;
 s1,l,i,j,n,m,k,d,ans:longint;
 vp,vd,t,f,c,tt,s,t1:real;
begin
  tt:=0;
  read(vp,vd,t,f,c);
  if vp>=vd then write(0) else
    begin
     k:=0;
     t1:=t;
     while true do
      begin
        tt:=vp*t1/(vd-vp);
        s:=tt*vp+t1;
       if s<c then inc(k)
              else break;

       t1:=t1+tt+tt+f;

      end;

    write(k);

   end;
end.

{$MACRO ON}
{$define W:=write}
{$define Wln:=Writeln}
{$define R:=read}
{$define Rln:=Readln}
{$define Wh:=while}
{$define arr:=array}
{$define str:=string}
{$define Int:=Integer}
{$define Long:=LongInt}
{$define Ansi:=AnsiString}

uses math;

var
  V1, V2, Delay, Spend, Dis, Count, X, Y, Mode, i, V0: LongInt;
  b: Boolean;

begin
	read(V1, V2, Delay, Spend, Dis);
  V0 := V2;
  x := Delay * V1;
  i := 1;
  b := true;
  while (i <= Min(V1, V2)) do
  begin
  	Inc(i);
    if V1 mod i = 0 then
    	if V2 mod i = 0 then
      begin
      	V1 := V1 div i;
        V2 := V2 div i;
        i := 1;
      end;
  end;
  i := 0;
  while x < Dis do
  begin
  	//Wln(X, ' ', Y);
    Inc(X, V1);
    Inc(Y, V2);
    if x < Dis then
  	begin
      if Y = X then
      begin
      	V2 := -V2;
        Inc(Count);
      end;
    end
    else
    	break;
    if b then
    if Y <= 0 then
    begin
    	Y := V2 * (Spend - 0);
      V2 := -V2;
      b := false;
    end
  	else
    	b := true;
  end;
  Writeln(Count);
end.

Var a,b,c,d,n,i,j,k,l,m,t,r:longint;
Begin
Readln(a);
Readln(b);
Readln(c);
Readln(d);
Readln(N);
t:=a*c;
i:=0;
r:=0;
while t<n do begin
  i:=0;
  While i<t do begin
    i:=i+b;
    t:=t+a;
    if t>=N then begin
      writeln(r);
      halt(0);
    end;
  end;
  if t>=n then begin
    writeln(r);
    halt(0);
  end;
  inc(r);
  t:=t+(t div b)+d;
  if t>=n then begin
    writeln(r);
    halt(0);
  end;
end;
writeln(r);
end.

var
ans,aim,cost,i,j,k,n,m,nowx,nowy,vx,vy:longint;
begin
readln(vx);
readln(vy);
readln(i);
nowx:=vx*i;  nowy:=0;
readln(cost);
readln(aim);
if (vx>vy)or(aim<=nowx) then
begin
  writeln(0);
  exit;
end;
while (nowx<aim) do
  begin
    while nowx>=nowy do
      begin
      if (nowx>=aim)and(nowx>=nowy)then
          begin
            writeln(ans);
            exit;
          end;
        inc(nowx,vx);
        inc(nowy,vy);
        if (nowx>=aim)and(nowx>=nowy)then
          begin
            writeln(ans);
            exit;
          end;
      end;
    dec(nowx,vx);
    dec(nowy,vy);
    inc(ans);
    nowx:=nowx+(nowy div vy)*vx*2+vx*cost;
  end;
writeln(ans);
end.

program pobeg;

var
   vp, vd,  f, c, n: integer;

   t,nach:real;
procedure dognal;
begin
   t:=nach/(vd-vp);
   nach:=nach+vp*t;
   n:=n+1;
end;
procedure domoi;

begin
t:=vd/nach+f;
nach:=nach+t*vp;
end;
begin
   readln(vp);
   readln(vd);
   readln(t);
   readln(f);
   readln(c);
   nach := vp * t;
   while nach<c do
   begin
      dognal;
      domoi;
   end;
   writeln(n-1);
end.

Var     x0, v_p, v_d, t, f, c : real;
        res : longint;
Begin
        readln(v_p,v_d,t,f,c);
        x0 := v_p*t;
        if v_p = v_d then begin
                writeln(0);
                exit;
        end;
        while x0 < c do begin
                x0 := x0+v_p*(x0/(v_d-v_p));
                if x0 >= c then break;
                res := res+1;
                x0 := x0+(x0/v_d)*v_p;
                x0 := x0+v_p*f;
        end;
        writeln(res);
End.

var
p,x,vp,vd,t,f,c,d,ans:longint;
begin
readln(vp,vd,t,f,c);
x:=vp*t;
d:=0;
while x<c do begin
    if d>=x then begin
     inc(ans);
    p:=1;
        x:=x+f*vp;
        p:=d div vd;
        if p=0 then d:=vd div d;
        if p=0 then p:=1;
        x:=x+p*vp;

        d:=0;
    end else begin
        x:=x+vp;
        d:=d+vd;
    end;
end;
writeln(ans);
end.

{$MACRO ON}
{$define W:=write}
{$define Wln:=Writeln}
{$define R:=read}
{$define Rln:=Readln}
{$define Wh:=while}
{$define arr:=array}
{$define str:=string}
{$define Int:=Integer}
{$define Long:=LongInt}
{$define Ansi:=AnsiString}

uses math;

var
  V1, V2, Delay, Spend, Dis, Count, X, Y, Mode, i: LongInt;

begin
	read(V1, V2, Delay, Spend, Dis);
  x := Delay * V1;
  i := 1;
  while (i <= Min(V1, V2)) do
  begin
  	Inc(i);
    if V1 mod i = 0 then
    	if V2 mod i = 0 then
      begin
      	V1 := V1 div i;
        V2 := V2 div i;
        i := 1;
      end;
  end;
  while x < Dis do
  begin
    Inc(X, V1);
    Inc(Y, V2);
    if x < Dis then
      if Y >= X then
      begin
      	V2 := -V2;
        Inc(Count);
      end
    else
    	break;
    if Y <= 0 then
    begin
    	Y := 0;
    	Inc(X, V1 * Spend);
      V2 := -V2;
    end;
  end;
  Writeln(Count);
end.

Var
  vp,vd,f,c,i,k,a,t,d,s: longint;

Begin
  read(vp,vd,t,f,c);
  if((c/vp) <= (c/vd + t)) then
    begin
      write(0);
      exit;
    end
  else
    begin
      a := vp*t; k := 0;
      repeat
        s := trunc(a * vp / (vd - vp));
        a := a + s;
        if(a < c) then
          inc(k);
        a := a + (f*vp) + (vp * trunc(a / vd));
      until a >= c;
    end;
  write(k);
End.

var v,d,t,f,c,k,s,i,p:integer;
begin
readln(v);
readln(d);
readln(t);
readln(f);
readln(c);
k:=v*t;
for i:=1 to 1000 do begin
k:=k+v;
s:=s+d;
if (s=k) and (k<>c) then begin
                         inc(p);
                         while s>0 do begin
                         s:=s-d;
                         k:=k+v;
                         end;
                         if s<0 then s:=0;
                         k:=k+(v*f);
                         end;
if k>=c then begin
write(p);
break;
end;
end;
end.

  var
   vp,vd,t,f,c,q,p,k,x,ans:longint;
   begin
    read(vp,vd,t,f,c);
    q:=t*vp;
    k:=0;
    x:=0;
     while q<c do
        begin
         k:=k+1;
         q:=q+vp;
         x:=x+vd;
         if(x>=q)and(q<c)
                then
                 begin
                  ans:=ans+1;
                  q:=q+(f+x div vd)*vp;
                  x:=0;
                 end;
        end;
     writeln(ans);
   end.

uses math;
var vp,vd,t,f,c,res:longint; t1,time,t2,dis:real;
 begin
  read(vp,vd,t,f,c);
  if vp>=vd then begin writeln(0); exit; end;
  time:=c/vp;
  t1:=(vp*t)/(vd-vp)+t;
  if t1>time then begin writeln(0); exit; end else begin time:=time-t1; res:=1; dis:=vp*t1; end;
  While time>0 do
   begin
   dis:=dis+(f+dis/vd)*vp;
   t2:=dis/(vd-vp);
   time:=time-t2-f;
   dis:=dis+t2*vp;
   inc(res);
  end;
  dec(res);
  writeln(res);
end.