#include #include typedef unsigned long int moj; int loop( moj ,moj,moj, int); int main(void) { moj a,b,c,k; do { scanf("%ld%ld%ld%ld",&a,&b,&c,&k); if (!((a==0) && (b==0) && (c==0) && (k==0))) loop(a,b,c,k); }while (!((a==0) && (b==0) && (c==0) && (k==0))); return 0; } int loop(moj a,moj b,moj c, int k) { moj zvysok = 0; int forever = 0; unsigned long int hlp,hlp1; moj vysl = 0; moj dvanak = 0; dvanak = ceil(exp(k*log(2))); if (a>b) { hlp = dvanak - a; hlp1 = c; zvysok = hlp % hlp1; vysl = (dvanak - a) / c; hlp = b-zvysok; if ((hlp % hlp1)==0) vysl = 1 +vysl + ((b-zvysok) / c); else forever = 1; } else { hlp = b-a; if ((hlp % 2) == 0) vysl = (b-a)/2; else { hlp = dvanak - a; hlp1 = c; zvysok = hlp % hlp1; vysl = (dvanak - a) / c; hlp = b-zvysok; if ((hlp % hlp1)==0) vysl = 1+vysl + ((b-zvysok) / c) ; else forever = 1; } } if (forever) printf("FOREVER\n"); else printf("%ld\n",vysl); return 0; }