A combinatorial assignment problem