Ok for me this task is like big head ache. After analize code Lisa L. from help section in Antony Chalk, I got a little grasp how to do it. I try do it by mysefl a little simpler and here what we get. (maybe not simpler, but with tools which I knows better, she use streams so ellegantly) But when I tried validate I got "TIME OUT" "The program ran too long and was closed!". Maybe you can tell me for start whether algorithm is accurate, and then why it's so robust for memory, and how to slim memory usage.