#include<bits/stdc++.h>
using namespace std;
const double pi=3.14;
const int inf=0x3f3f3f3f;
const int NIL=-1;
#define f(i,l,r) for(int i=l;i<=r;i++)
long long n,m,p,q,l,x1,yy1,aa,bb,d;
long long ExO(long long a,long long b,long long &x,long long &y){
long long r,x0,y0;
if (b==0){
x=1;
y=0;
return a;
}
r=ExO(b,a%b,x0,y0);
x=y0,y=x0-a/b*y0;
return r;
}
int read()
{
int ans=0,flag=1;
char ch=getchar();
while( (ch>'9' || ch<'0') && ch!='-' ) ch=getchar();
if(ch=='-') flag=-1,ch=getchar();
while(ch>='0' && ch<='9') ans=ans*10+ch-'0',ch=getchar();
return ans*flag;
}
int main()
{
//freopen(".in","r",stdin);
//freopen(".out","w",stdout);
cin>>n>>m>>p>>q>>l;
aa=n-m;
bb=q-p;//////////////看这里!!!
if (bb<0){
aa=-aa,bb=-bb;
}
/*//GODNESS COMES!//*/
d=ExO(bb,l,x1,yy1);
if (aa%d!=0){
cout<<"Impossible"<<endl;
}else{
cout<<((x1*(aa/d))%(l/d)+(l/d))%(l/d)<<endl;
}
}
在第35行修改bb时,如果调换p,q位置就会AC,否则像现在就会WA,求问是为什么,还有将aa,bb取反的意义还是不很明白啊/kk