Solution by Steven Lembark