Solution by Ruben Westerberg
