Очень понравилась задача) думаю второй день над упрощением, решение писала сама - конечно, всегда можно взять и скопипастить готовое с Гитхаба, но очень надеюсь, что можно упростить свое