The cognitive underpinnings of multiply-constrained problem solving