решение конечно не самое изящное, стыдновато за него, но тесты проходит вроде...не понимаю, где ошибка