Final solution
Last change: 01. 07. 2019