code: def at(self, p):
          
          root = self.top_node
          if not root:
              return set()
          return root.search_point(p, set())
docs: Returns the set of all intervals that contain p.
  
          Completes in O(m + log n) time, where:
            * n = size of the tree
            * m = number of matches
          :rtype: set of Interval