problem types