кажется мне чтьо здесь что-то с рекурсиями связано, но уж очень сложно выходит как-то...