#
# Operator Overloading
#
class Quantity:

      def __init__(self, value):
          self.value = value

      def __add__(self, other):
           new_value = self.value + other.value
           return Quantity(new_value)

      def __sub__(self, other):
          new_value = self.value - other.value
          return Quantity(new_value)

      def __mul__(self, other):
          new_value = self.value * other.value
          return Quantity(new_value)

      def __str__(self):
          return "Quantity["+ str(self.value) +"]"

      def __eq__(self, other):
          return self.value == other.value

      def __gt__(self, other):
          return self.value > other.value

      def __ge__(self, other):
          return self.value >= other.value

      def __lt__(self, other):
          return self.value < other.value

      def __le__(self, other):
          return self.value <= other.value
def main():
    q1 = Quantity(10)
    q2 = Quantity(20)
    q3 = q1 + q2
    print(q3)
    print(q1<q2)
main()