Solution by Carlos Eduardo de Oliveira.