Heap + Hashmap Python3 Solution
\nclass NumberContainers:\n\n    def __init__(self):\n        self.num_indices = defaultdict(list)\n        self.num_at_index = {}\n        \n\n    def change(s
```\nclass NumberContainers:\n\n    def __init__(self):\n        self.num_indices = defaultdict(list)\n        self.num_at_index = {}\n        \n\n    def change(self, index: int, number: int) -> None:\n        self.num_at_index[index] = number\n        heapq.heappush(self.num_indices[number], index)\n        \n\n    def find(self, number: int) -> int:\n        while self.num_indices[number] and self.num_at_index[self.num_indices[number][0]] != number:\n            heapq.heappop(self.num_indices[number])\n        \n        return self.num_indices[number][0] if len(self.num_indices[number]) > 0 else -1\n        \n\n\n# Your NumberContainers object will be instantiated and called as such:\n# obj = NumberContainers()\n# obj.change(index,number)\n# param_2 = obj.find(number)\n```
['Heap (Priority Queue)', 'Python3']