А еще хочу поделиться с вами вот такими вариантами подходов к общему решению. Идеи не новые, но рабочие и интересные.