#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define REP(i,a,b) for(int i=a;i<(int)b;i++) #define rep(i,n) REP(i,0,n) #define all(c) (c).begin(), (c).end() #define zero(a) memset(a, 0, sizeof a) #define minus(a) memset(a, -1, sizeof a) #define minimize(a, x) a = std::min(a, x) #define maximize(a, x) a = std::max(a, x) typedef unsigned long long ll; int const inf = 1<<29; int main() { int xs[3], ys[3]; rep(i, 3) { cin >> xs[i] >> ys[i]; } set s; ll curr = xs[0]; rep(i, 1e8) { s.insert(curr); curr += ys[0]; if(curr >= std::numeric_limits::max() - ys[0]) { break; } } set t; for(auto& e: s) { if(e % ys[1] == xs[1]) { t.insert(e); } } curr = xs[2]; for(auto& e: t) { if(e % ys[2] == xs[2]) { cout << e << endl; exit(0); } } cout << -1 << endl; return 0; }