You are interested in examining some hard-to-obtain data from two separate databases. Each database comprises numerical values - so there are 2n values total - and you may suppose that no two values are same. You'd like to find out median of this set of 2n values, which we will define here to be nth smallest value. Though, the only way you can access these values is through queries to databases. In single query, you can specify value k to one of two databases, and selected database will return kth smallest value which it contains. As queries are expensive, you would like to calculate median using as few queries as possible. Give algorithm which determines median value using at most O(log n) queries.