Solution by Martin Mugeni
