#include <bits/stdc++.h>
using namespace std;
struct ps
{
long long tu, mau;
};
void rutgon(ps &x)
{
if(x.mau<0)
{
x.mau = -x.mau;
x.tu = -x.tu;
}
long long tam = __gcd(x.tu, x.mau);
x.tu/=tam, x.mau/=tam;
}
ps cong(ps x, ps y)
{
ps t;
t.mau = x.mau*y.mau;
t.tu = x.tu*y.mau + x.mau*y.tu;
rutgon(t);
return t;
}
int main()
{
ps x, y, t;
cin >> x.tu >> x.mau;
cin >> y.tu >> y.mau;
rutgon(x);
rutgon(y);
t = cong(x, y);
rutgon(t);
cout << t.tu << ' ' << t.mau;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgcHMKewogICAgbG9uZyBsb25nIHR1LCBtYXU7Cn07Cgp2b2lkIHJ1dGdvbihwcyAmeCkKewogICAgaWYoeC5tYXU8MCkKICAgIHsKICAgICAgICB4Lm1hdSA9IC14Lm1hdTsKICAgICAgICB4LnR1ID0gLXgudHU7CiAgICB9CiAgICBsb25nIGxvbmcgdGFtID0gX19nY2QoeC50dSwgeC5tYXUpOwogICAgeC50dS89dGFtLCB4Lm1hdS89dGFtOwp9CgpwcyBjb25nKHBzIHgsIHBzIHkpCnsKICAgIHBzIHQ7CiAgICB0Lm1hdSA9IHgubWF1KnkubWF1OwogICAgdC50dSA9IHgudHUqeS5tYXUgKyB4Lm1hdSp5LnR1OwogICAgcnV0Z29uKHQpOwogICAgcmV0dXJuIHQ7Cn0KCmludCBtYWluKCkKewogICAgcHMgeCwgeSwgdDsKICAgIGNpbiA+PiB4LnR1ID4+IHgubWF1OwogICAgY2luID4+IHkudHUgPj4geS5tYXU7CiAgICBydXRnb24oeCk7CiAgICBydXRnb24oeSk7CiAgICB0ID0gY29uZyh4LCB5KTsKICAgIHJ1dGdvbih0KTsKICAgIGNvdXQgPDwgdC50dSA8PCAnICcgPDwgdC5tYXU7Cn0K