// Fraction.cpp
#include <iostream>
#include <cmath>
using namespace std;


class Fraction {
	int num;
	int denom;
public:
  Fraction(int num, int denom = 1) : num(num), denom(denom) { }

  friend const Fraction operator/(const Fraction& left, const Fraction& right) {
  	return Fraction(left.num * right.denom, left.denom * right.num);
  }

  friend bool operator==(const Fraction& left, const Fraction& right) {
  	return left.num * right.denom == left.denom * right.num;
  }

  friend bool operator!=(const Fraction& left, const Fraction& right) {
  	return left.num * right.denom != left.denom * right.num;
  }

  friend bool operator>(const Fraction& left, const Fraction& right) {
  	return left.num * right.denom > left.denom * right.num;
  }

  friend bool operator<(const Fraction& left, const Fraction& right) {
  	return left.num * right.denom < left.denom * right.num;
  }

  friend Fraction abs(const Fraction& fraction) {
  	return Fraction(abs(fraction.num), abs(fraction.denom));
  }

  friend ostream& operator<<(ostream& os, const Fraction& fraction) {
  	if (fraction.num == 0) return os << 0;
   	if (fraction.denom == 1) return os << fraction.num;
   	if (fraction.denom == -1) return os << -fraction.num;
   	if (fraction.num * fraction.denom < 1) os << "-";
   	return os << abs(fraction.num) << "/" << abs(fraction.denom);
  }
};
