费蜀定理:
对于任意正整数x,y,一定存在整数a,b,使得:    ax+by=gcd(x,y);

定理1 gcd(a,b)是ax+by的线性组合的最小正整数
定理2 如果ax+by=c,x,y∈z;则c%gcd==0;
定理3 如果ab是互质的正整数,c是整数,且方程 ax+by=c有一组整数解x0y0,则此方程的一切整数解可以表示为x=x0+bt;y=y0-at;t∈z;(所以解都是第一组解的倍数)
#include <iostream>
#include <algorithm>

using namespace std;

int x,y,xn,yn,l;

int gcd(int a,int b){
	return b?gcd(b,a%b):a;
}

int main(int argc, char** argv) {
	cin>>x>>y>>xn>>yn>>l;
	if(yn==xn){
		cout<<"Impossible\n";
		return 0;
	}
	if(yn>xn) swap(yn,xn),swap(y,x);
	long long s=(x>y)?y+l-x:y-x;
//cout<<s<<endl;
	int v=xn-yn;
	if(s%gcd(v,l)==0){
		while(s%v!=0) s+=l;
		cout<<s/v<<endl;
	}else cout<<"Impossible\n";
	return 0;
}