#include #include int main() { int A, B, C, k; bool ano; unsigned long i; unsigned long pocet; do { cin >> A >> B >> C >> k; if((A==0) && (B==0) && (C==0) && (k==0)) { return 0; } //if if(A==B) { cout << 0 << endl; continue; } //if else if((B>A) && ((B-A)%C==0)) { cout << ((B-A)/C) << endl; continue; } //if ano=false; pocet = 0; for(i=A;i<((unsigned long)pow(2,k)*C);i+=C) { pocet++; if ((i%((unsigned long)pow(2,k)))==B) { ano=true; break; } //if } //for if(ano) { cout << pocet-1 << endl; } //if else { cout << "FOREVER" << endl; } //else /* else if((A>B) && ((B-A)%C==0)) { cout << ((int)pow(2,k)/C-((A-B)/C)) << endl; continue; } //if else if((abs(A-B)%C)!=0) cout << "FOREVER" << endl; */ } while(1); return 0; }