Prova a farla ricorsiva, che è più semplice.