Problem:
Equal Range

For a given sequence $A = \{a_0, a_1, ..., a_{n-1}\}$ which is sorted by ascending order, print a pair of the lower bound and the upper bound for a specific value $k$ given as a query.

lower bound: the place pointing to the first element greater than or equal to a specific value, or $n$ if there is no such element.

upper bound: the place pointing to the first element greater than a specific value, or $n$ if there is no such element.

Input

The input is given in the following format.

$n$
$a_0 \; a_1 \; ,..., \; a_{n-1}$
$q$
$k_1$
$k_2$
:
$k_q$

The number of elements $n$ and each element $a_i$ are given in the first line and the second line respectively. In the third line, the number of queries $q$ is given and the following $q$ lines, $q$ integers $k_i$ are given as queries.

Output

For each query, print the pari of the lower bound $l$ ($l = 0, 1, ..., n$) and upper bound $r$ ($r = 0, 1, ..., n$) separated by a space character in a line.

Constraints

$1 \leq n \leq 100,000$

$1 \leq q \leq 200,000$

$0 \leq a_0 \leq a_1 \leq ... \leq a_{n-1} \leq 1,000,000,000$

$0 \leq k_i \leq 1,000,000,000$

Sample Input 1

4
1 2 2 4
3
2
3
5

Sample Output 1

1 3
3 3
4 4

Solution in C++11 (judge verdict: Accepted)

#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <sstream>
#include <functional>

#define INPUT_FROM_FILE (0) 
#if INPUT_FROM_FILE
#include <fstream>
#endif


int main(){
	int n, q, k;
	std::vector<long> a;

#if INPUT_FROM_FILE
	std::ifstream ifs("test.txt");
#endif

#if INPUT_FROM_FILE
	ifs >> n;
#else
	std::cin >> n;
#endif
	
	a.resize(n);
	for(int i = 0; i < n; i++){
#if INPUT_FROM_FILE
		ifs >> a[i];
#else
		std::cin >> a[i];
#endif
	}

#if INPUT_FROM_FILE
	ifs >> q;
#else
	std::cin >> q;
#endif

	for(int i = 0; i < q; i++){
#if INPUT_FROM_FILE
		ifs >> k;
#else
		std::cin >> k;
#endif
		std::vector<long>::iterator lit = std::lower_bound(a.begin(), a.end(), k);
		std::vector<long>::iterator uit = std::upper_bound(a.begin(), a.end(), k);
		std::cout << (lit - a.begin()) << " " << (uit - a.begin()) << std::endl;
	}
	return 0;
}