#include<bits/stdc++.h>
#define N 100010
using namespace std;
int read()
{
int x = 0,f = 1;
char c = getchar();
while(c<'0' || c>'9')
{
if(c=='-') f = -1;
c = getchar();
}
while(c>='0' && c<='9')
{
x = (x<<3)+(x<<1)+(c^48);
c = getchar();
}
return x*f;
}
struct rec
{
int p,d;
void direction()
{
if (d==2) d = -1;
}
};
bool f[N];
rec a[N];
int main()
{
int n=read(),t=read(),q=read();
map <int,int> mp;
for (int i=1;i<=n;i++)
{
a[i].p=read();
a[i].d=read();
a[i].direction();
mp[a[i].p]++;
}
while(t--)
{
for (int i=1;i<=n;i++)
if (!f[i])
{
mp[a[i].p]--;
a[i].p += a[i].d;
mp[a[i].p]++;
}
for (int i=1;i<=n;i++)
if (mp[a[i].p]>=2) f[i] = true;
}
while(q--)
{
int s=read();
cout << a[s].p << endl;
}
return 0;
}