Вроде бы логика правильна, код работает