M. Algoland and Berlandtime limit per test5 secondsmemory limit per test512 megabytesinputstandard inputoutputstandard outputOnce upon a time Algoland and Berland were a single country, but those times are long gone. Now they are two different countries, but their cities are scattered on a common territory.All cities are represented as points on the Cartesian plane. Algoland consists of a cities numbered from 1 to a. The coordinates of the i-th Algoland city are a pair of integer numbers (xa_i, ya_i). Similarly, Berland consists of b cities numbered from 1 to b. The coordinates of the j-th Berland city are a pair of integer numbers (xb_j, yb_j). No three of the a+b mentioned cities lie on a single straight line.As the first step to unite the countries, Berland decided to build several bidirectional freeways. Each freeway is going to be a line segment that starts in a Berland city and ends in an Algoland city. Freeways can't intersect with each other at any point except freeway's start or end. Moreover, the freeways have to connect all a+b cities. Here, connectivity means that one can get from any of the specified a+b cities to any other of the a+b cities using freeways. Note that all freeways are bidirectional, which means that one can drive on each of them in both directions.Mayor of each of the b Berland cities allocated a budget to build the freeways that start from this city. Thus, you are given the numbers r_1, r_2, \dots, r_b, where r_j is the number of freeways that are going to start in the j-th Berland city. The total allocated budget is very tight and only covers building the minimal necessary set of freeways. In other words, r_1+r_2+\dots+r_b=a+b-1.Help Berland to build the freeways so that:  each freeway is a line segment connecting a Berland city and an Algoland city,  no freeways intersect with each other except for the freeway's start or end,  freeways connect all a+b cities (all freeways are bidirectional),  there are r_j freeways that start from the j-th Berland city. InputInput contains one or several test cases. The first input line contains a single integer number t (1 \le t \le 3000) — number of test cases. Then, t test cases follow. Solve test cases separately, test cases are completely independent and do not affect each other.Each test case starts with a line containing space-separated integers a and b (1 \le a, b \le 3000) — numbers of Algoland cities and number of Berland cities correspondingly.The next line contains b space-separated integers r_1, r_2, \dots, r_b (1 \le r_b \le a) where r_j is the number of freeways, that should start in the j-th Berland city. It is guaranteed that r_1+r_2+\dots+r_b=a+b-1.The next a lines contain coordinates of the Algoland cities — pairs of space-separated integers xa_i, ya_i (-10000 \le xa_i, ya_i \le 10000). The next b lines contain coordinates of the Berland cities — pairs of space-separated integers xb_i, yb_i (-10000 \le xb_i, yb_i \le 10000). All cities are located at distinct points, no three of the a+b cities lie on a single straight line.Sum of values a across all test cases doesn't exceed 3000. Sum of values b across all test cases doesn't exceed 3000.OutputFor each of the t test cases, first print "YES" if there is an answer or "NO" otherwise.If there is an answer, print the freeway building plan in the next a+b-1 lines. Each line of the plan should contain two space-separated integers j and i which means that a freeway from the j-th Berland city to the i-th Algoland city should be built. If there are multiple solutions, print any.ExampleInput22 31 1 20 01 11 23 24 01 110 00 1OutputYES2 21 23 23 1YES1 1
Input22 31 1 20 01 11 23 24 01 110 00 1
OutputYES2 21 23 23 1YES1 1
['constructive algorithms', 'divide and conquer', 'geometry', '*3000']