#include<iostream>
#include<cmath>
#include<string>
using namespace std;
long long gcd(long long a, long long b) { //找最大公因数
if (b == 0)
return a;
else return gcd(b, a%b);
}
/*
分子分母均取绝对值,正负单独讨论;特别注意整数部分和分子的特殊情况。
*/
string getNum(long long n, long long d) {
string res = "";
if (n == 0)
return "0";
if (d == 0)
return "Inf";
bool negative = n < 0 && d > 0 || n > 0 && d < 0;
n = abs(n), d = abs(d);
long long k = n / d;
n %= d;
long long maxCommonFactor = gcd(n, d);
n /= maxCommonFactor;
d /= maxCommonFactor;
if (negative) {
res += "(-";
}
if (k != 0) { //整数部分
res.append(to_string(k));
if (n != 0)
res.append(" ");
}
if (n != 0) {
res += to_string(n) + "/" + to_string(d);
}
if (negative)
res += ")";
return res;
}
int main() {
long long n1, d1, n2, d2;
scanf("%lld/%lld %lld/%lld", &n1, &d1, &n2, &d2);
long long n3, d3;
cout << getNum(n1, d1) << " + " << getNum(n2, d2) << " = " << getNum(n1 * d2 + n2 * d1, d1 * d2) << endl;
cout << getNum(n1, d1) << " - " << getNum(n2, d2) << " = " << getNum(n1 * d2 - n2 * d1, d1 * d2) << endl;
cout << getNum(n1, d1) << " * " << getNum(n2, d2) << " = " << getNum(n1 * n2, d1 * d2) << endl;
cout << getNum(n1, d1) << " / " << getNum(n2, d2) << " = " << getNum(n1 * d2, d1 * n2) << endl;
}