#P1843E. Tracking Segments

    ID: 9918 Type: RemoteJudge 2000ms 256MiB Tried: 0 Accepted: 0 Difficulty: 5 Uploaded By: Tags>binary searchbrute forcedata structurestwo pointers*1600

Tracking Segments

Description

You are given an array aa consisting of nn zeros. You are also given a set of mm not necessarily different segments. Each segment is defined by two numbers lil_i and rir_i (1lirin1 \le l_i \le r_i \le n) and represents a subarray ali,ali+1,,aria_{l_i}, a_{l_i+1}, \dots, a_{r_i} of the array aa.

Let's call the segment li,ril_i, r_i beautiful if the number of ones on this segment is strictly greater than the number of zeros. For example, if a=[1,0,1,0,1]a = [1, 0, 1, 0, 1], then the segment [1,5][1, 5] is beautiful (the number of ones is 33, the number of zeros is 22), but the segment [3,4][3, 4] is not is beautiful (the number of ones is 11, the number of zeros is 11).

You also have qq changes. For each change you are given the number 1xn1 \le x \le n, which means that you must assign an element axa_x the value 11.

You have to find the first change after which at least one of mm given segments becomes beautiful, or report that none of them is beautiful after processing all qq changes.

The first line contains a single integer tt (1t1041 \le t \le 10^4) — the number of test cases.

The first line of each test case contains two integers nn and mm (1mn1051 \le m \le n \le 10^5) — the size of the array aa and the number of segments, respectively.

Then there are mm lines consisting of two numbers lil_i and rir_i (1lirin1 \le l_i \le r_i \le n) —the boundaries of the segments.

The next line contains an integer qq (1qn1 \le q \le n) — the number of changes.

The following qq lines each contain a single integer xx (1xn1 \le x \le n) — the index of the array element that needs to be set to 11. It is guaranteed that indexes in queries are distinct.

It is guaranteed that the sum of nn for all test cases does not exceed 10510^5.

For each test case, output one integer  — the minimum change number after which at least one of the segments will be beautiful, or 1-1 if none of the segments will be beautiful.

Input

The first line contains a single integer tt (1t1041 \le t \le 10^4) — the number of test cases.

The first line of each test case contains two integers nn and mm (1mn1051 \le m \le n \le 10^5) — the size of the array aa and the number of segments, respectively.

Then there are mm lines consisting of two numbers lil_i and rir_i (1lirin1 \le l_i \le r_i \le n) —the boundaries of the segments.

The next line contains an integer qq (1qn1 \le q \le n) — the number of changes.

The following qq lines each contain a single integer xx (1xn1 \le x \le n) — the index of the array element that needs to be set to 11. It is guaranteed that indexes in queries are distinct.

It is guaranteed that the sum of nn for all test cases does not exceed 10510^5.

Output

For each test case, output one integer  — the minimum change number after which at least one of the segments will be beautiful, or 1-1 if none of the segments will be beautiful.

Sample Input 1

6
5 5
1 2
4 5
1 5
1 3
2 4
5
5
3
1
2
4
4 2
1 1
4 4
2
2
3
5 2
1 5
1 5
4
2
1
3
4
5 2
1 5
1 3
5
4
1
2
3
5
5 5
1 5
1 5
1 5
1 5
1 4
3
1
4
3
3 2
2 2
1 3
3
2
3
1

Sample Output 1

3
-1
3
3
3
1

Note

In the first case, after first 2 changes we won't have any beautiful segments, but after the third one on a segment [1;5][1; 5] there will be 3 ones and only 2 zeros, so the answer is 3.

In the second case, there won't be any beautiful segments.