import java.io.* ;
import java.util.* ;
class Ideone {
static class Fast {
}
return ( st.
hasMoreElements ( ) ? st.
nextToken ( ) : ( st
= new StringTokenizer ( br.
readLine ( ) ) ) .
nextToken ( ) ) ; }
}
return Long .
parseLong ( next
( ) ) ; }
bw.write ( s) ;
bw.flush ( ) ;
}
}
Fast f = new Fast( ) ;
int t = f.nextInt ( ) ;
while ( t-- != 0 ) {
int n = f.nextInt ( ) ;
HashMap
< Integer , Integer
> map
= new HashMap
<> ( ) ; for ( int i = 0 ; i < n; i++ ) {
int x = f.nextInt ( ) ;
map.put ( x, map.containsKey ( x) ? map.get ( x) + 1 : 1 ) ;
int y = f.nextInt ( ) ;
map.put ( y + 1 , map.containsKey ( y + 1 ) ? map.get ( y + 1 ) - 1 : - 1 ) ;
}
// created an map of l and r+1 with respective values . . . .
int q = f.nextInt ( ) ;
//input queries
int qr[ ] = new int [ q] ;
for ( int i = 0 ; i < q; i++ ) {
qr[ i] = f.nextInt ( ) ;
}
//to check the missing values in between an arraylist
ArrayList< Integer> list = new ArrayList<> ( map.keySet ( ) ) ;
int max = list.get ( list.size ( ) - 1 ) ;
int min = list.get ( 0 ) ;
int sum = 0 ;
//to create a prefix map sortof thing
for ( Map .
Entry < Integer , Integer
> entry
: map.
entrySet ( ) ) {
sum += entry.getValue ( ) ;
entry.setValue ( sum) ;
}
for ( int i = 0 ; i < q; i++ ) {
//every query in q[] if is >=min of arraylist and <=max of arraylist
if ( qr[ i] <= max && qr[ i] >= min ) {
if ( list.contains ( qr[ i] ) ) {
f.print ( map.get ( qr[ i] ) + "\n " ) ; //if we have it in the list we will print its corresponding value else we'll have to search for its corresponding value in prefix map which is just less than it
} else {
int start = 0 ;
int end = list.size ( ) - 1 ;
int ans = - 1 ;
while ( start <= end) {
int mid = ( start + end) / 2 ;
if ( list.get ( mid) >= qr[ i] ) {
end = mid - 1 ;
} else {
ans = mid;
start = mid + 1 ;
}
}
f.print ( map.get ( list.get ( ans) ) + "\n " ) ;
}
}
else { //if value is outside the range of min and max // not produced by manufactures
f.print ( 0 + "\n " ) ;
}
}
}
}
}
aW1wb3J0IGphdmEuaW8uKjsKaW1wb3J0IGphdmEudXRpbC4qOwoKY2xhc3MgSWRlb25lIHsKICAgIHN0YXRpYyBjbGFzcyBGYXN0IHsKICAgICAgICBCdWZmZXJlZFJlYWRlciBicjsKICAgICAgICBTdHJpbmdUb2tlbml6ZXIgc3Q7CiAgICAgICAgQnVmZmVyZWRXcml0ZXIgYnc7CgogICAgICAgIEZhc3QoKSB0aHJvd3MgSU9FeGNlcHRpb24gewogICAgICAgICAgICBiciA9IG5ldyBCdWZmZXJlZFJlYWRlcihuZXcgSW5wdXRTdHJlYW1SZWFkZXIoU3lzdGVtLmluKSk7CiAgICAgICAgICAgIGJ3ID0gbmV3IEJ1ZmZlcmVkV3JpdGVyKG5ldyBPdXRwdXRTdHJlYW1Xcml0ZXIoU3lzdGVtLm91dCkpOwogICAgICAgICAgICBzdCA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoYnIucmVhZExpbmUoKSk7CgogICAgICAgIH0KCiAgICAgICAgU3RyaW5nIG5leHQoKSB0aHJvd3MgSU9FeGNlcHRpb24gewogICAgICAgICAgICByZXR1cm4gKHN0Lmhhc01vcmVFbGVtZW50cygpID8gc3QubmV4dFRva2VuKCkgOiAoc3QgPSBuZXcgU3RyaW5nVG9rZW5pemVyKGJyLnJlYWRMaW5lKCkpKS5uZXh0VG9rZW4oKSk7CiAgICAgICAgfQoKICAgICAgICBpbnQgbmV4dEludCgpIHRocm93cyBJT0V4Y2VwdGlvbiB7CiAgICAgICAgICAgIHJldHVybiBJbnRlZ2VyLnBhcnNlSW50KG5leHQoKSk7CiAgICAgICAgfQoKICAgICAgICBsb25nIG5leHRMb25nKCkgdGhyb3dzIElPRXhjZXB0aW9uIHsKICAgICAgICAgICAgcmV0dXJuIExvbmcucGFyc2VMb25nKG5leHQoKSk7CiAgICAgICAgfQoKICAgICAgICB2b2lkIHByaW50KE9iamVjdCBvKSB0aHJvd3MgSU9FeGNlcHRpb24gewogICAgICAgICAgICBTdHJpbmcgcyA9IFN0cmluZy52YWx1ZU9mKG8pOwogICAgICAgICAgICBidy53cml0ZShzKTsKICAgICAgICAgICAgYncuZmx1c2goKTsKICAgICAgICB9CiAgICB9CgogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFyZ3NbXSkgdGhyb3dzIElPRXhjZXB0aW9uIHsKICAgICAgICBGYXN0IGYgPSBuZXcgRmFzdCgpOwogICAgICAgIGludCB0ID0gZi5uZXh0SW50KCk7CiAgICAgICAgd2hpbGUgKHQtLSAhPSAwKSB7CiAgICAgICAgCQogICAgICAgICAgICBpbnQgbiA9IGYubmV4dEludCgpOwogICAgICAgICAgICBIYXNoTWFwPEludGVnZXIsIEludGVnZXI+IG1hcCA9IG5ldyBIYXNoTWFwPD4oKTsKICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAgICAgICAgIGludCB4ID0gZi5uZXh0SW50KCk7CiAgICAgICAgICAgICAgICBtYXAucHV0KHgsIG1hcC5jb250YWluc0tleSh4KSA/IG1hcC5nZXQoeCkgKyAxIDogMSk7CiAgICAgICAgICAgICAgICBpbnQgeSA9IGYubmV4dEludCgpOwogICAgICAgICAgICAgICAgbWFwLnB1dCh5ICsgMSwgbWFwLmNvbnRhaW5zS2V5KHkgKyAxKSA/IG1hcC5nZXQoeSArIDEpIC0gMSA6IC0xKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBjcmVhdGVkIGFuIG1hcCBvZiBsIGFuZCByKzEgd2l0aCByZXNwZWN0aXZlIHZhbHVlcyAuIC4gLiAuCiAgICAgICAgICAgIAogICAgICAgICAgICBpbnQgcSA9IGYubmV4dEludCgpOwogICAgICAgICAgICAvL2lucHV0IHF1ZXJpZXMKICAgICAgICAgICAgaW50IHFyW10gPSBuZXcgaW50W3FdOwogICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHE7IGkrKykgewogICAgICAgICAgICAgICAgcXJbaV0gPSBmLm5leHRJbnQoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgLy90byBjaGVjayB0aGUgbWlzc2luZyB2YWx1ZXMgaW4gYmV0d2VlbiBhbiBhcnJheWxpc3QKICAgICAgICAgICAgQXJyYXlMaXN0PEludGVnZXI+IGxpc3QgPSBuZXcgQXJyYXlMaXN0PD4obWFwLmtleVNldCgpKTsKICAgICAgICAgICAgaW50IG1heCA9IGxpc3QuZ2V0KGxpc3Quc2l6ZSgpIC0gMSk7CiAgICAgICAgICAgIGludCBtaW4gPSBsaXN0LmdldCgwKTsKICAgICAgICAgICAgaW50IHN1bSA9IDA7CiAgICAgICAgICAgIC8vdG8gY3JlYXRlIGEgcHJlZml4IG1hcCBzb3J0b2YgdGhpbmcKICAgICAgICAgICAgZm9yIChNYXAuRW50cnk8SW50ZWdlciwgSW50ZWdlcj4gZW50cnkgOiBtYXAuZW50cnlTZXQoKSkgCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHN1bSArPSBlbnRyeS5nZXRWYWx1ZSgpOwogICAgICAgICAgICAgICAgZW50cnkuc2V0VmFsdWUoc3VtKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBxOyBpKyspIHsKICAgICAgICAgICAgCS8vZXZlcnkgcXVlcnkgaW4gcVtdIGlmIGlzID49bWluIG9mIGFycmF5bGlzdCBhbmQgPD1tYXggb2YgYXJyYXlsaXN0IAogICAgICAgICAgICAgICAgaWYgKHFyW2ldIDw9IG1heCAmJiBxcltpXT49bWluICkgewogICAgICAgICAgICAgICAgICAgIGlmIChsaXN0LmNvbnRhaW5zKHFyW2ldKSkgewogICAgICAgICAgICAgICAgICAgICAgICBmLnByaW50KG1hcC5nZXQocXJbaV0pICsgIlxuIik7ICAgIC8vaWYgd2UgaGF2ZSBpdCBpbiB0aGUgbGlzdCB3ZSB3aWxsIHByaW50IGl0cyBjb3JyZXNwb25kaW5nIHZhbHVlIGVsc2Ugd2UnbGwgaGF2ZSB0byBzZWFyY2ggZm9yIGl0cyBjb3JyZXNwb25kaW5nIHZhbHVlIGluIHByZWZpeCBtYXAgd2hpY2ggaXMganVzdCBsZXNzIHRoYW4gaXQgCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgaW50IHN0YXJ0ID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgaW50IGVuZCA9IGxpc3Quc2l6ZSgpIC0gMTsKICAgICAgICAgICAgICAgICAgICAgICAgaW50IGFucyA9IC0xOwogICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoc3RhcnQgPD0gZW5kKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWlkID0gKHN0YXJ0ICsgZW5kKSAvIDI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGlzdC5nZXQobWlkKSA+PSBxcltpXSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZCA9IG1pZCAtIDE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFucyA9IG1pZDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCA9IG1pZCArIDE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZi5wcmludChtYXAuZ2V0KGxpc3QuZ2V0KGFucykpICsgIlxuIik7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZXsgLy9pZiB2YWx1ZSBpcyBvdXRzaWRlIHRoZSByYW5nZSBvZiBtaW4gYW5kIG1heCAvLyBub3QgcHJvZHVjZWQgYnkgbWFudWZhY3R1cmVzIAogICAgICAgICAgICAgICAgCWYucHJpbnQoMCArICJcbiIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKfQ==