practice priority queue, just for learning