#include int main() { long int odpoved[120000]; long unsigned int ka,a,b,c; int r,i,k=1; i=0; while (k!=0) { ka=1; scanf("%ld %ld %ld %d",&a, &b, &c, &k); for (r=1;r<=k;r++) ka *= 2; if (k!=0) { if ((a <= b) && (((b-a) % c) ==0)) odpoved[i]=(b-a)/c ; else { if ((( a % 2 )== 1) && ((c % 2) == 1) && ((b % 2) == 1)) odpoved[i]=-1; else { if ((( a % 2)== 0) && (( c % 2 ) == 0 ) && (( b % 2 ) == 1)) odpoved[i]=-1; else { if ((( a % 2) == 1) && (( c % 2) == 0) && (( b % 2) == 0)) odpoved[i]=-1; else { odpoved[i]=0; odpoved[i]=odpoved[i]+(((ka-a) / c) ); a=( a + ((ka - a) % c)); if (odpoved[i]> 2500000) {odpoved[i]=-1; a=b;} odpoved[i] += (a-b)/c; } } } } } i++; } i--; for (int j=0;j