Рабочая версия

Работает, проверял на тестах Миши.