Ну что, задача оказалась трудная всё-таки? Нужны подсказки?