Очень похожая задача подробно разобрана в топике "Задача про 20 студентов". Отличие только в том, что там два города. Посмотрите как решено, ваша решается аналогично.