Notation changes, refined algorithm and it's proof.