Solution by Jaime Corchado.