#include<bits/stdc++.h>
using namespace std;
int n,m,t;
const int N=2e5+10;
struct node{
int x,ym;
short v;
}blc[N];
bool cmp(node x,node y){
return x.x>y.x;
}
bool cmp1(node x,node y){
return x.ym<y.ym;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
cin>>n;
for (size_t i = 1; i <= n; i++){
auto&[x,ym,v]=blc[i];
cin>>x>>v;
}
sort(blc+1,blc+n+1,cmp);
int l0=-1,l1=-1;
for (size_t i = 1; i <= n; i++){
auto&[x,ym,v]=blc[i];
if(v==1){
l1=x;
if(l0==-1) ym=-1;
else ym=(l0-l1+1)/2;
}
}
sort(blc+1,blc+n+1,cmp1);
cin>>m;
while (m--){
cin>>t;
int l=1,r=n;
while(l<r){
int mid=(l+r)>>1;
if(blc[mid].ym<=t) l=mid;
else r=mid-1;
}
if(blc[l].ym<=t) l--;
cout<<l<<'\n';
}
return 0;
}