code: def put(self, key: int, val: int) -> None:
      # if key exist
      if key in self.lookup:
          # fetch curr frequency
          [frequency, var] = self.lookup[key]
          # update frequency
          self.structure[frequency].remove(key)
          self.structure[frequency + 1].append(key)
          self.lookup[key] = [frequency + 1, val]
      # if key not exist
      else:
          # handle empty capacity
          if self.capacity == 0:
              return
          # check if capacity will exceed
          if self.capacity == len(self.lookup):
              # keep iteration till find valid frequency keys
              frequent = 1
              while not self.structure[frequent]:
                  frequent += 1
              # pop the less recency key fro mthe least frequency
              var = self.structure[frequent].pop(0)
              # eliminate key :: val entry from lookup
              self.lookup.pop(var)
          # complete raw entry insertion
          self.structure[1].append(key)
          self.lookup[key] = [1, val]
  
label_desc: Use image node_id 3 for calling the LFUCache obj's underlying member method code with example usage: obj.put(key, val) without return types