Thoroughly describe how you would solve the following problem in the fastest way you know: You are given an array, a, of length N (1 ≤ N ≤ 100,000), filled with intervals. Each interval is defined by 2 integers, a and b, such that (0 ≤ a ≤ b ≤ 1,000,000). Note that these intervals might overlap in some places and intervals are inclusive (of both endpoints). Additionally, you need to answer Q queries (1 ≤ Q ≤ 100,000) given in an array q, each query asking the number of intervals in array a that pass through point c (0 ≤ c ≤ 1,000,000), where c is given for each query. In all your output should have Q separate integers representing their respective query. (Sample input: N = 4, a = [[0, 3], [1, 5], [0, 10], [6, 6]], Q = 3, q = [2, 5, 6] | Sample output: 3 2 2 | Explanation: The first 3 intervals pass through point 2, so the answer to the first query is 3. Intervals 2 and 3 pass through point 5, so the answer to the second query is 2. Lastly, intervals 3 and 4 pass through point 6, so the answer to the third query is 2) *