Grokking Algorithms: An illustrated guide