As with my chess960 solution, I chose a data-directed approach.
The circle of rebels is represented by a circular data structure containing N integers (the rebels' ID numbers).
To find the next suicide, we simply skip M positions around the circle.
We surgically remove the suicide from the data structure, "stitching" it back up to close the gap.
When the size of the data structure is 1, we are done and the remaining rebel is the survivor.