Cache Query Handler
Implement a prototype of a simple cache query handler.
There are n data entries stored in the cache. Each entry is of the form
[timestamp, key, value], where timestamp represents the time at which
the entry was stored in the cache, key represents the ID assigned to the cache entry,
and value represents the data value of the entry, an integer represented as a string.
The keys assigned to the cache entries may not be unique. The cache query handler receives query
requests, where each query is of the form [key, timestamp], where key
represents the ID of the cache entry to find, and timestamp represents the time the
entry was added.
Given two 2D arrays of strings, cache_entries, and queries, of sizes
n x 3 and q x 2 respectively, return an array of size q
with the data values for each query.
1Example 1

- queries[0] corresponds to the data entry at index 2, with value = "764" - queries[1] corresponds to the data entry at index 1, with value = "341"
2Example 2

- queries[0] corresponds to the data entry at index 2, with value = "764" - queries[1] corresponds to the data entry at index 1, with value = "341"
Constraints
Limits and guarantees your solution can rely on.
1 ≤ n ≤ 10^51 ≤ q ≤ 10^51 ≤ int(cache_entries[i][2]) ≤ 10^8cache_entries[i][0]represents a valid timestamp in the format hh:mm:sssize(cache_entries[i][0]) = 8cache_entries[i][1], is an alphanumeric value, consisting of only lowercase English letters (a-z), and digits (0-9)- It is guaranteed that the queried
[key, timestamp]pair is present in the cache. - At a particular timestamp, there can be no duplicate keys.