using Priority Queue