#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

int main(){
    int n;
    cin>>n;
vector<pair<int,int>>medicines(n);
for(int i=0;i<n;i++){
    cin>>medicines[i].first>>medicines[i].second;
}
sort(medicines.begin(),medicines.end());

vector<int>prefix_max(n);
prefix_max[0]=medicines[0].second;
for(int i=1;i<n;i++){
    prefix_max[i]=max(prefix_max[i-1],medicines[i].second);
}
int q;
cin>>q;
while(q--){
int x;
cin>>x;
int left=0;
int right=n-1;
int mid;
int pos=-1;
while(left<=right){
    mid=(left+right)/2;
    if(medicines[mid].first<=x){
        pos=mid;
        left=mid+1;
    }
    else{
    right=mid-1;
    }
}
if(pos==-1)cout<<-1<<endl;
else cout<<prefix_max[pos]<<endl;
}
    return 0;
}