http://www.ic.unicamp.br/~vignatti/desafio2.html