#include<cstdio>
#include<algorithm>
#include<functional>
using namespace std;
int d[100001];
long long k[100001],a[100001];
int main(void)
{
	int n,q,i,cnt,x,j,flg;
	long long MAX,MAX2,t,aa;
	scanf("%d %lld %d",&n,&t,&q);
	cnt=0;
	flg=0;
	for(i=1;i<=n;i++){
		scanf("%lld %d",&a[i],&d[i]);
		if(d[i]==1){
			MAX=a[i];
			flg=1;
		}
		if(flg==1&&d[i]==2&&(a[i]-MAX)/2<t){
			k[cnt]=(long long)(MAX+a[i])/2;
			flg=0;
			cnt++;
		}
	}
	for(i=0;i<q;i++){
		scanf("%d",&x);
		if(d[x]==1){
				aa=a[x]+t;
			}
		if(d[x]==2){
			aa=a[x]-t;
		}
		for(j=0;j<cnt;j++){
			if(aa>k[j]&&d[x]==1&&a[x]<k[j]){
				aa=k[j];
			}
			if(aa<k[j]&&d[x]==2&&a[x]>k[j]){
				aa=k[j];
			}
		}
		printf("%lld\n",aa);
	}	
	return 0;
}
