input: 
  class Vector3D:
      def __init__(self, x, y, z):
          self.x = x
          self.y = y
          self.z = z
      
      def __str__(self):
          return "(" + str(self.x) + ", " + str(self.y) + ", " + str(self.z) + ")"
  
  # Example:
  # v = Vector3D(1, 2, 3)
  # print(v)
  # Output: (1, 2, 3)
  
output:     
      def __add__(self, other):
          return Vector3D(self.x + other.x, self.y + other.y, self.z + other.z)
      
      def __sub__(self, other):
          return Vector3D(self.x - other.x, self.y - other.y, self.z - other.z)
      
      def __mul__(self, scalar):
          return Vector3D(self.x * scalar, self.y * scalar, self.z * scalar)
      
      def __rmul__(self, scalar):
          return self.__mul__(scalar)
      
      def __eq__(self, other):
          return self.x == other.x and self.y == other.y and self.z == other.z
      
      def __ne__(self, other):
          return not self.__eq__(other)
  