设$A,B$两青蛙一共跳了$t$次后碰面
则可以得出
$mt+x \equiv nt+y(\mod L) $
$(m-n)t \equiv y-x(\mod L) $
设$a=m-n$,$c=y-x$
则$at+Ly=c$
用扩展欧几里得求解即可
/*
@ author:pyyyyyy
-----思路------
-----debug-------
*/
#include<bits/stdc++.h>
#define int long long
using namespace std;
int x,y,m,n,l;
int exgcd(int a,int b,int &x,int &y)
{
if(b==0){x=1,y=0;return a;}
int d=exgcd(b,a%b,x,y);
int z=x;x=y;y=z-y*(a/b);
return d;
}
signed main()
{
// freopen(".in","r",stdin);
// freopen(".out","w",stdout);
int x=0,y=0;
cin>>x>>y>>m>>n>>l;
int c=y-x,d=exgcd(m-n,l,x,y);
if(c%d!=0) cout<<"Impossible";
else {
x=x*(c/d);
int t=abs(l/d);
cout<<(x%t+t)%t;
}
return 0;
}