#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define REP(i,n) for(int (i)=0;(i)<(int)(n);(i)++) #define RREP(i,n) for(int (i)=(int)(n)-1;i>=0;i--) #define REMOVE(Itr,n) (Itr).erase(remove((Itr).begin(),(Itr).end(),n),(Itr).end()) #define PB_VEC(Itr1,Itr2) (Itr1).insert((Itr1).end(),(Itr2).begin(),(Itr2).end()) #define UNIQUE(Itr) sort((Itr).begin(),(Itr).end()); (Itr).erase(unique((Itr).begin(),(Itr).end()),(Itr).end()) #define LBOUND(Itr,val) lower_bound((Itr).begin(),(Itr).end(),(val)) #define UBOUND(Itr,val) upper_bound((Itr).begin(),(Itr).end(),(val)) typedef long long ll; int main(){ ll X[3],Y[3]; REP(i,3)cin>>X[i]>>Y[i]; set k1,k2; ll ans=1e9; for(ll i=0;i<=1e6;i++)if(i%Y[0]==X[0])k1.insert(i); for(ll i=0;i<=1e6;i++)if(i%Y[1]==X[1])k2.insert(i); for(ll i=0;i<=1e6;i++){ if(i%Y[2]==X[2]){ if( k1.find(i)!=k1.end() && k2.find(i)!=k2.end() ){ if(i!=0)ans=min(ans,i); } } } if(ans==1e9)cout<<-1<