#include typedef long long ll; using namespace std; #define rep(i,n) for(int i=0;i<(n);i++) const ll INF=1000000000000000000; ll mod(ll a,ll m){ return (a%m+m)%m; } ll extGcd(ll a,ll b,ll &p,ll &q){ if(b==0){p=1;q=0;return a;} ll d=extGcd(b,a%b,q,p); q-=a/b*p; return d; } pair ChineseRem(const vector &b,const vector &m){ ll r=0,M=1; for(int i=0;i<(int)b.size();++i){ ll p,q; ll d=extGcd(M,m[i],p,q); if((b[i]-r)%d!=0)return make_pair(0,-1); ll tmp=(b[i]-r)/d*p%(m[i]/d); r+=M*tmp; M*=m[i]/d; } return make_pair(mod(r,M),M); } ll gcd(ll a, ll b) { if (a%b == 0) { return(b); } else { return(gcd(b, a%b)); } } ll lcm(ll a, ll b) { return a * b / gcd(a, b); } int main(){ vector X(3),Y(3); for(int i=0;i<3;i++){ cin>>X[i]; cin>>Y[i]; } if(X[0]==X[1]&&X[1]==X[2]&&X[2]==0){ cout< pr=ChineseRem(X,Y); if(pr.second==-1){ cout<<-1<