#include<stdio.h>
#include<math.h>
int a,b,c,d,k,n;
int i,t;
int moc(int c){
t=1;	
for(i=0;i<c;i++)
t*=2;
return t;    
}
int nsd(int a,int b){
    if (a==0) return b;
    if (b==0) return a;
    if (a>b) return nsd(a-b,b);
    else return nsd(b-a,a);
}

int main(){
scanf("%d %d %d %d",&a,&b,&c,&k);
while((a>0) || (b>0) || (c>0) || (k>0)){
n = moc(k);
t =nsd(c,n);
if (b>=a) d = b-a;
else d = b+n-a;

if (d%t ==0) {
if (d==0&&c!=0) printf("%d\n",0);
else if (c==0) printf("FOREVER\n");
else{
if  (c>d)
t = (int)(c / d);
else t =(int)(d / c);
printf("%d\n",t);
}
}
else
printf("FOREVER\n");
scanf("%d %d %d %d",&a,&b,&c,&k);
}
return 0;
}