Solution by Scott Sotka