The princess is going to escape the dragon's cave, and she needs to plan it carefully.The princess runs at vp miles per hour, and the dragon flies at vd miles per hour. The dragon will discover the escape after t hours and will chase the princess immediately. Looks like there's no chance to success, but the princess noticed that the dragon is very greedy and not too smart. To delay him, the princess decides to borrow a couple of bijous from his treasury. Once the dragon overtakes the princess, she will drop one bijou to distract him. In this case he will stop, pick up the item, return to the cave and spend f hours to straighten the things out in the treasury. Only after this will he resume the chase again from the very beginning.The princess is going to run on the straight. The distance between the cave and the king's castle she's aiming for is c miles. How many bijous will she need to take from the treasury to be able to reach the castle? If the dragon overtakes the princess at exactly the same moment she has reached the castle, we assume that she reached the castle before the dragon reached her, and doesn't need an extra bijou to hold him off.

The input data contains integers vp, vd, t, f and c, one per line (1 ≤ vp, vd ≤ 100, 1 ≤ t, f ≤ 10, 1 ≤ c ≤ 1000).

Output the minimal number of bijous required for the escape to succeed.

NoteIn the first case one hour after the escape the dragon will discover it, and the princess will be 1 mile away from the cave. In two hours the dragon will overtake the princess 2 miles away from the cave, and she will need to drop the first bijou. Return to the cave and fixing the treasury will take the dragon two more hours; meanwhile the princess will be 4 miles away from the cave. Next time the dragon will overtake the princess 8 miles away from the cave, and she will need the second bijou, but after this she will reach the castle without any further trouble.The second case is similar to the first one, but the second time the dragon overtakes the princess when she has reached the castle, and she won't need the second bijou.

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.

// 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.

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 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,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,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 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.

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.

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.

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.

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.

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.

{$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
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.

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.

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.

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.

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
        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.

{$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 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.

{
   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.

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 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,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.

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,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.

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.

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.

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 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, 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.

{$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.

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
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.

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.

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.

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.

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 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.

{$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.

//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.

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.

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.

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.

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.

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 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 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.

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 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.

{$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.

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.

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.

{$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 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.

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.

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.

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 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 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 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.

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.

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.

{$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.

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
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.

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
  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,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.

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.

{$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 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.

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.

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.

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.

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
 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.

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 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.

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  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: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 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.

  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.