Please categorize the user's question, then think about the fundamental principles of that category, and finally solve the problem for the user.