Works for this simple case, but I think iterating the procedure is more general. For instance, suppose there are 6 people -- A1, A2, A3, B1, B2, B3, and you want it to be recoverable given any 2 of the A group and any 2 of the B group; I'm pretty sure that can't be handled with a solution like the above.