1. 16
  1.  

  2. 8

    I liked this so much that I ported it to JavaScript: https://github.com/sanxiyn/blog/blob/master/posts/2019-10-13.md