Distributed Computing by P. Fraigniaud