#include #include #include #include #include #include #include #include #include #include using namespace std; using namespace atcoder; #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 rep2(i, a, b) for (int i = (int)a; i < (int)(b); ++i) #define rrep2(i, a, b) for (int i = (int)(b)-1; i >= (int)(a); --i) template inline bool chmin(T& a, T b) { if (a > b) { a = b; return 1; } return 0; } using ll = long long; // using mint = modint998244353; // constexpr int inv_2 = 499122177; int main(){ // cin.tie(nullptr); // std::ios_base::sync_with_stdio(false); vector B(2), C(2); for(int i = 0; i < 2; ++i) scanf("%lld %lld", &B[i], &C[i]); auto [x, y] = crt(C, B); if(!y) printf("NaN\n"); else printf("%lld\n", x); return 0; }