constraint-satisfaction problem