priority queue is completed
priority queue