Beautiful Problem from IMO 2011

I recently found an International Mathematics Olympiad problem from 3blue1brown (great youtube channel btw) and the solution is really beautiful. Original can be found here (Problem C3).

Statement:
Let \mathcal{S} be a finite set of at least two points in the plane. Assume that no three points of \mathcal{S} are collinear. By a windmill we mean a process as follows. Start with a line \ell going through a point P \in \mathcal{S} . Rotate \ell clockwise around the pivot P until the line contains another point Q of \mathcal{S}. The point Q now takes over as the new pivot. This process continues indefinitely, with the pivot always being a point from \mathcal{S}.

Show that for a suitable P \in \mathcal{S} and suitable starting line \ell containing P, the resulting windmill will visit each point of \mathcal{S} as a pivot infinitely often.

Hint 1

The solution has a combinatorics flavor so don’t think about the geometry of the points. Can you think of an invariant that is maintained throughout the windmill process?

Hint 2

What if you put an orientation on \ell, providing a consistent concept of being on the “left” or “right” of \ell? How do the number of points to the “left” and “right” of \ell change as the windmill process proceeds?

Hint 3

Assuming |\mathcal{S}| is odd, we can always pick a point P and line \ell such that the number of points strictly to the “left” and “right” of \ell are equal. What happens after \ell rotates 180^{\circ}? How would you generalize this argument to any parity of |\mathcal{S}|?

Very cool problem, and nice work with the hints. I wish I had seen this post before watching the video. Would be nice to try to think it through myself.