#!/ usr / bin / env Ġkotlin Ċ Ċ import Ġjava . util . TreeMap Ċ Ċ object ĠCol lat z Length Ġ{ ĊĠ Ġval Ġcache Ġ= ĠTreeMap < Long , ĠLong >() ĊĊĠ Ġfun Ġcompute ( n : ĠLong ): ĠLong Ġ= Ġcache . get Or Put ( n ) Ġ{ ĊĠĠĠ Ġif Ġ( n Ġ== Ġ 1 L ) Ġ 1 L Ġelse Ġ 1 L Ġ+ Ġcompute ( next ( n )) ĊĠ Ġ} ĊĊĠ Ġfun Ġnext ( n : ĠLong ) Ġ= Ġwhen Ġ{ ĊĠĠĠ Ġn Ġ% Ġ 2 L Ġ== Ġ 0 L Ġ-> Ġn Ġ/ Ġ 2 L ĊĠĠĠ Ġelse Ġ-> Ġ 3 L Ġ* Ġn Ġ+ Ġ 1 L ĊĠ Ġ} Ċ } Ċ Ċ println (( 1 L .. 1 0 0 0 0 0 0 L ). as Sequence (). max By OrNull ( Col lat z Length :: compute )) Ċ