Geek went to a grocery shop with a bag in his hand, where he found there are two sections of products and he wanted to take P products from the first section and Q products from the second section. As geek is greedy, he wanted to fill his bag such that he spends a lesser amount. If two products have the same price then geek chooses the lexicographically smaller named product.
Given N products with their prices of the first section and M products with their prices of the second section, help the geek to choose those products. Print the names of the products in the order they have chosen
1. The first line of the input contains a single integer T denoting the number of test cases. The description of T test cases follows.
2. The first line of each test case contains four space-separated integers N, M, P, and Q.
3. Next N lines contain a string (contains English lower case letters) and an integer separated by a space.
4. Next M lines contain a string (contains English lower case letters) and an integer separated by a space.
Output: For each test case, print the product names in the order they have chosen.
1. 1 <= T <= 10
2. 1 <= P <= N <= 100000
3. 1 <= Q <= M <= 100000
4. 1 <= product prices <= 100000
5. 1 <= size of prodcut name <= 10
3 3 1 2
cake maggi bread
Explanation: Geek has to choose one product from the first section and two products from second section. So, he has chosen cake from the second section first (even cake and maggi have same price, a cake is lexicographically smaller.) and then he chose maggi from the first section and bread from the second section ( bread is lexicographically smaller than butter)
We strongly recommend solving this problem on your own before viewing its editorial. Do you still want to view the editorial?Yes