#include<stdio.h>
#include<math.h>
int a,b,c,d,k,t;
int i;
long n;
long 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);
if (b>=a) d = b-a;
else d = b+n-a;
if (d==0) printf("0\n");
else if (c==0) printf("FOREVER\n");
else{
    t =nsd(c,n);
    if (d%t ==0) {
	if  (c>d)
        t = (c / d);
        else t =(d / c);
	printf("%d\n",t);
    }
    else
    printf("FOREVER\n");
}
scanf("%d %d %d %d",&a,&b,&c,&k);
}
return 0;
}