Solution by ealvar3z