combinatorial problem