euler 18 19 20 commit