import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Fraction a = new Fraction(in.nextInt(), in.nextInt());
Fraction b = new Fraction(in.nextInt(),in.nextInt());
a.print();
b.print();
a.plus(b).print();
a.multiply(b).plus(new Fraction(5,6)).print();
a.print();
b.print();
in.close();
}
}
class Fraction
{
int fenmu = 1;
int fenzi= 0;
//构造函数
Fraction(int a,int b)
{
this.fenmu=b;
this.fenzi=a;
}
double toDoutble()
{
return (double)(fenzi/fenmu);
}
/*最大公约数*/
int maxGYS(int a,int b )
{
int t;
while(true)
{
t = b%a;
if(t == 0) {//System.out.println("最大公约数:"+a);
break;
}
else
{
b = a;
a = t;
}
}
return a;
}
//两分数相加
Fraction plus(Fraction r)
{
Fraction temp = new Fraction(fenzi,fenmu);
int a=fenmu;
int b = r.fenmu;
int t = maxGYS(a,b); //算出最大公约数
int minGBS = r.fenmu*fenmu/t; //算出最小公倍数
temp.fenzi = ((minGBS/temp.fenmu)*fenzi)+((minGBS/r.fenmu)*r.fenzi); //最小公倍数乘以各自的分子然后相加
temp.fenmu = minGBS;
//判断是否可以约分
t = maxGYS(temp.fenzi,temp.fenmu);
if(t != 1 )
{
temp.fenzi/=t;
temp.fenmu/=t;
}
return temp;
}
Fraction multiply(Fraction r)
{
Fraction temp = new Fraction(fenzi, fenmu);
temp.fenmu*=fenmu;
temp.fenzi*=fenzi;
int t = maxGYS(temp.fenmu,temp.fenzi);
//判断是否可以约分
if(t != 1 )
{
temp.fenzi/=t;
temp.fenmu/=t;
}
return temp;
}
void print()
{
if( (fenzi/fenmu) == 1 )
{
System.out.println("1");
}
else
{
int t = maxGYS(fenmu,fenzi);
if(t != 1 )
{
fenzi/=t;
fenmu/=t;
}
System.out.println(fenzi+"/"+fenmu);
}
}
}