#include #include #include using namespace std; long long extgcd(long long a, long long b, long long &x, long long &y) { for (long long u = y = 1, v = x = 0; a; ) { long long q = b / a; swap(x -= q * u, u); swap(y -= q * v, v); swap(b -= q * a, a); } return b; } pair chinese_rem(vector b, vector m) { long long r = 0, M = 1; for (int i = 0; i < (int)b.size(); ++i) { long long p, q, d = extgcd(M, m[i], p, q); if ((b[i] - r) % d != 0) return {0, -1}; r += (b[i] - r) / d * p % (m[i] / d) * M; M *= m[i] / d; } return {(r % M + M) % M, M}; } int main() { vector b(3), m(3); bool exist_non_zero = false; for (int i = 0; i < 3; ++i) { cin >> b[i] >> m[i]; if (b[i]) exist_non_zero = true; } pair res = chinese_rem(b, m); if (res.second == -1) cout << -1 << endl; else if (exist_non_zero) cout << res.first << endl; else cout << res.second << endl; }