//1034 有理数四则运算 天勤
//https://pintia.cn/problem-sets/994805260223102976/problems/994805287624491008
#include <iostream>
using namespace std;
struct Fraction{
long long up,down;
};
long long getGcd(long long a,long long b){
if(b ==0) return a;
else return getGcd(b,a%b);
}
Fraction reduction(Fraction result){
if(result.down < 0){
result.up = -result.up;
result.down = -result.down;
}
if(result.up == 0) result.down = 1;
else{
long long gcd = getGcd(abs(result.up),abs(result.down));
result.up /= gcd;
result.down /= gcd;
}
return result;
}
Fraction add(Fraction a,Fraction b){
Fraction result;
result.up = a.up*b.down + b.up*a.down;
result.down = a.down * b.down;
return reduction(result);
}
Fraction minu(Fraction a,Fraction b){
Fraction result;
result.up = a.up*b.down - b.up*a.down;
result.down = a.down * b.down;
return reduction(result);
}
Fraction multi(Fraction a,Fraction b){
Fraction result;
result.up = a.up*b.up;
result.down = a.down * b.down;
return reduction(result);
}
//除法不用考虑除数为0吗?-->在main中处理了
Fraction divide(Fraction a,Fraction b){
Fraction result;
result.up = a.up * b.down;
result.down = a.down*b.up;
return reduction(result);
}
void showResult(Fraction r){
r = reduction(r);
if(r.up < 0) printf("(");
if(r.down == 1) printf("%lld",r.up);
else if(abs(r.up) > r.down){
printf("%lld %lld/%lld",r.up/r.down,abs(r.up) % r.down,r.down);
}else printf("%lld/%lld",r.up,r.down);
if(r.up <0) printf(")");
}
int main(){
Fraction a,b;
scanf("%lld/%lld %lld/%lld",&a.up,&a.down,&b.up,&b.down);
showResult(a);
printf(" + ");
showResult(b);
printf(" = ");
showResult(add(a,b));
printf("\n");
showResult(a);
printf(" - ");
showResult(b);
printf(" = ");
showResult(minu(a,b));
printf("\n");
showResult(a);
printf(" * ");
showResult(b);
printf(" = ");
showResult(multi(a,b));
printf("\n");
showResult(a);
printf(" / ");
showResult(b);
printf(" = ");
if(b.up == 0) printf("Inf");
else{
showResult(divide(a,b));
}
printf("\n");
return 0;
}