import sys
input = sys.stdin.readline
def gcd(a, b):
if a >= b:
if a % b == 0:
return b
else:
return gcd(b, a % b)
elif a < b:
if b % a == 0:
return a
else:
return gcd(a, b % a)
'''
def gcd(a, b):
while a % b != 0:
mod = a % b
a = b
b = mod
return b
'''
a, b = map(int, input().split())
c, d = map(int, input().split())
p = a * d + b * c; #분자
q = b * d; #분모
g = gcd(p, q);
print(p//g, q//g)
1) 분수를 더한다. (분모 통일을 위해 크로스로 곱해줌)
2) 분자와 분모의 최대공약수(GCD)를 구한다.
3) 분자와 분모를 GCD로 나누어준다.
#include <cstdio>
int gcd(int a, int b){
if(b == 0) return a;
else return gcd(b, a % b);
}
int main(){
int a, b, c, d;
int p, q, g;
scanf("%d%d%d%d", &a, &b, &c, &d);
p = a * d + b * c;
q = b * d;
g = gcd(p, q);
printf("%d %d", p / g, q / g);
}