解线性方程:2^k * x + c*y=b-a;
#include<cstdio>
using namespace std;
typedef long long ll;
ll a,b,c,d,e,k,x,y;
ll Extended_Euclid(ll a,ll b)
{
if(b==0)
{
x=1;
y=0;
return a;
}
ll m=Extended_Euclid(b,a%b);
ll temp=x;
x=y;
y=temp-a/b*y;
return m;
}
void cal()
{
d=1LL<<k;
e=Extended_Euclid(c, d);
if((b-a)%e!=0)
{
printf ("FOREVER\n");
return ;
}
ll t=d/e;
x=( x*(b-a)/e )%t+t;
x%=t;
printf("%lld\n",x);
}
int main()
{
while(~scanf("%lld%lld%lld%lld",&a,&b,&c,&k))
{
if(a+b+c+k==0)
{
break;
}
cal();
}
return 0;
}