Добавлены всякие мелочи. Далее буду красочно выводить решение.