Note: For some reason my input results in part 2 being exactly 10 less than it should be, I suspect this is a bug in the input data?