
#include<bits/stdc++.h>

#define int long long int
#define rep(a,b,c) for(int a=b;a<c;a++)
#define repm(a,b,c) for(int a=(b-1);a>=c;a--)
#define pb push_back
#define str string
#define sf(a) scanfs("%d",&a)
#define pb push_back
#define mp make_pair
#define Fi first
#define Se second
#define ALL(v) (v).begin(), (v).end()

using namespace std;

const int INF = 1e18 + 9;
const int Mod = 1e9 + 7;
inline int replac(str s){double ans=0;rep(i,0,s.length()){ans+=(s[i]-'0')*pow(10,s.length()-i-1);}return (int)ans;}
inline string numstr(int m){str s="";while(m>0){char c;int a=m/10;if(a>0)a=m%(a*10);else a=m;c=(char)('0'+a);s+=c;m/=10;}str st="";for(int i=s.size()-1;i>=0;i--){st+=s[i];}return st;}
typedef vector<int> vi;
typedef pair<int,int> pii;
typedef vector<pii> vii;
int x[100005],y[100005];
int memo[100005];
signed main()
{
    cin.tie(0);
    ios::sync_with_stdio(false);
    int n,t,m,a[2],len=2;
    cin >> n >> t >> m;
    rep(i,0,n){
        cin >> x[i] >> y[i];
    }
    rep(i,0,100005){memo[i]=0;}
    rep(j,0,n){
        if(y[j]==2){
            memo[j]=x[j]-t;
        }
        if(y[j]==1){
            memo[j]=x[j]+t;
            for(;j<n;j++){
                memo[j]=x[j]+t;
                if(y[j]==2){
                int wa;
                int butu=(x[j-1]+x[j])/2;
                //cout << butu <<" " << j << "ss";
                //1?????????
                for(int p=j-1;p>=0;p--){
                    if(y[p]==2)break;
                    if((x[p]+t)>=butu){
                        memo[p]=butu;
                    }else{
                        break;
                    }
                }
                int mae = j-1;
                for(;j<n;j++){
                if(y[j]==1){j--;break;}
                if((x[j]-t)<=butu){
                  //  cout << j << endl;
                    memo[j]=butu;
                }else{
                    memo[j]=x[j]-t;
                }
                }
                }
            }
        }
    }
    rep(i,0,m){
        int u;cin >> u;
        cout << memo[u-1] << endl;
    }
    return 0;
}