class PriorityQueue:
    def __init__(self, dict):
        self.S = dict

    def __str__(self):
        return str(self.S)

    def insert(self, v, priority):
        self.S[v] = priority

    def minimum(self):

        m = min(self.S.values())
        for i,j in self.S.items():
            if j == m:
                return i, j

    def extract_min(self):
        print(self.S)
        m = min(self.S.values())

        for i,j in self.S.items():
            if j == m:
                self.S.pop(i)
                return i, j

    def decrease_distance(self, x, k):
        if x in self.S.keys():
            if self.S[x] > k:
               self.S[x] = k
               return True
        return False