This is a problem of Concurrent Programming that I solved in a test:
The parking lot have 30 spots. Since the parking lot have spots, it doesn't have priority. When it is full, starts to make a line. Professors have the highest priority, Employees have the Medium priority, and then it comes the students. Use Java to simulate 10 Professors, 15 employees, 30 students.