Implement a bounded priority queue for request objects. Each request has an id, priority, and timestamp. Support inserting a request, removing and returning the highest-priority request, and peeking at the next request. If the queue is full and a new request arrives, keep only the best capacity requests: higher priority is better, and for equal priority, smaller timestamp is better. If a new request is not better than the current worst stored request, discard it.
1 <= capacity <= 10^510^5 operations are performed0 <= priority <= 10^90 <= timestamp <= 10^9