Здравствуйте, xenitron!
Предлагаю Вам следующее решение задачи. Учитывая большое количество выкладок, велика вероятность ошибки, поэтому я ставил перед собой целью скорее продемонстрировать подход к решению подобных задач, нежели решить конкретную задачу без ошибок.
Вам предстоит проверит выкладки.
С уважением.
Об авторе:
Facta loquuntur.