Вот мое решение, у меня сомнения в правильности, помогите пожалуйста