#include using namespace std; using Int = long long; template inline void chmin(T1 &a,T2 b){if(a>b) a=b;} template inline void chmax(T1 &a,T2 b){if(a linear_congruence(const vector &A, const vector &B, const vector &M){ Int x=0,m=1; for(Int i=0;i<(Int)A.size();i++){ Int a=A[i]*m,b=B[i]-A[i]*x,d=__gcd(M[i],a); if(b%d!=0) return make_pair(0,-1); Int t=b/d*mod_inverse(a/d,M[i]/d)%(M[i]/d); x=x+m*t; m*=M[i]/d; } return make_pair((x%m+m)%m,m); } //INSERT ABOVE HERE signed main(){ vector A(3,1),B(3),M(3); for(Int i=0;i<3;i++) cin>>B[i]>>M[i]; auto p=linear_congruence(A,B,M); if(p.second==-1) cout<<-1<