Solution by kjetillll