Solution by ealvar3z.