Далее решение представлено, собственно, в самом решении. Расписал максимально подробно. Вопросы в комментарии ниже.