A building block inspired algorithm with variable neighborhood search for no-wait flow shop scheduling problems