* dp
* simpler dp
* proper dp (memoisation via Stream)
* cleanup
* index (still too slow)
* optimize by procedural construction
* debug border cases
* unlazy