#include #define uint long long int uint fn(uint a,uint b,uint c,uint * x,uint * y,uint * d) { uint q,r,t,u; if(b==0) { if(a==0) { if(c)return 0; *x=*y=0; *d=0; return 1; } if(c%a) { return 0; } else { *x=c/a; *d=abs(a); *y=0; return 1; } } else { q=a/b; r=a-q*b; if(fn(b,r,c,&t,&u,d)) { *x=u; *y=t-q*u; return 1; } else return 0; } } uint F(uint a,uint b,uint l) { uint x,y,d,N,t,dx,dy; if(fn(b,-l,a,&x,&y,&d)) { N=b/d*l; dx=N/b; dy=N/l; t=x/dx+1; x-=t*dx; y-=t*dy; t=y/dy+1; x-=t*dx; y-=t*dy; t=(-x-1)/dx+1; x+=t*dx; y+=t*dy; if(y<0) { t=(-y-1)/dy+1; x+=t*dx; y+=t*dy; } return x; } else return -1; } void solve(uint b, uint a, uint l) { uint x; if(a==0) { printf("0\n"); return; } if(b==0) { printf("FOREVER\n"); return; } x=F(a,b,l); if(x==-1) { printf("FOREVER\n"); } else { printf("%lld\n",x); } } int main(void) { uint k, a, b, c, l; while(scanf("%lld %lld %lld %lld ", &a, &b, &c, &k), k||a||b||c) { l=1<