Your goal is to obtain all the unique Y-value indexes and then select their respective X-value and sort the Y-value indexes using the highest X-value.
uses Sasquatch/Pancake, perhaps not ideal if you want to keep plug-ins to a minimal.
uses native Grasshopper components.
uses a single GhPython block.
There’s more solutions to your question that aren’t in here. I personally would opt for option 3, but it all comes down to whatever you prefer.
unique_y = set(pt[1] for pt in input)
indices = []
for y in unique_y:
filtered_points = [i for i, pt in enumerate(input) if pt[1] == y]
best_index = max(filtered_points, key=lambda i: input[i][0])
indices.append(best_index)
index = indices
selected_pt = [input[i] for i in indices]