#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); } int main(){ vector X(3),Y(3); for(int i=0;i<3;i++){ cin>>X[i]; cin>>Y[i]; } bool flag=true; if(X[0]==X[1]==X[2])flag=false; ll p,q; if(!flag){ ll d=extGcd(Y[0],Y[1],p,q); d=extGcd(d,Y[2],p,q); cout< pr=ChineseRem(X,Y); if(pr.second==-1){ cout<<-1<