Задание сложное! Нужно не просто сделать, но и прокомментировать, почему сделали именно так.
Задание прикрепила.