Notes:
A good examples of .filter_map() / .unzip() to parse a stream into two vectors for subsequent independent sorting.
I was stuck until experimented with many_till.
fn parse_instr(input: &str) -> IResult<&str, (u32, u32)> {
let (remain, (_junk, instruction)) = many_till(anychar, parse_mul)(input)?;
Ok((remain, instruction))
}