good learnings. solved very slowly, then reviewed the efficient solutions. Feel dirty for as much help as required. This one is the most cut and paste