my solution to the firing squad synchronization problem, for fun