def METHOD_NAME(points, a, b, side, hull):
    num_points = len(points)
    max_dist = 0
    max_dist_index = -1
    # Find the point with the maximum distance from the line segment 'a'-'b' and also on the specified side of L
    for i in range(num_points):
        curr_side = points[i].find_side(a, b)
        dist = points[i].line_dist(a, b)
        if curr_side == side and dist > max_dist:  # side can have value 1 or -1 specifying each of the parts made by the line L
            max_dist = dist
            max_dist_index = i
    # If no point is found, add the end points of the line segment to the convex hull
    if max_dist_index == -1:
        hull.add(a)
        hull.add(b)
        return
    # Recursively find the points on the convex hull on the two sides of the line segment divided by points[max_dist_index]
    METHOD_NAME(points, points[max_dist_index], a, -points[max_dist_index].find_side(a, b), hull)
    METHOD_NAME(points, points[max_dist_index], b, -points[max_dist_index].find_side(b, a), hull)