var minInterval = function(intervals, queries) {
intervals.sort((a, b) => a[0] - b[0]);
const queriesSorted = [ ...queries ].sort((a, b) => a - b);
const minHeap = new MinPriorityQueue();
const output = {};
let i = 0;
for (const query of queriesSorted) {
while (i < intervals.length && intervals[i][0] <= query) {
const [ start, end ] = intervals[i];
const length = end - start + 1;
minHeap.enqueue([ length, end ], length);
i++;
}
while (!minHeap.isEmpty() && minHeap.front().element[1] < query) {
minHeap.dequeue();
}
output[query] = (!minHeap.isEmpty()) ? minHeap.front().element[0] : -1;
}
return queries.map((query) => output[query]);
};