#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define maxp 100005
#define maxy 10000005
ll m,q,p;
ll a[25],b[25],fx[maxp][30];
ll log_2[maxy+1];
ll qpow(ll x,ll y){
ll ans=1;
x=x%p;
while(y){
if(y&1)ans=x*ans%p;
x=x*x%p;
y>>=1;
}
return ans;
}
ll f(ll x){
ll ans=0;
for(int i=1;i<=m;i++){
ans=ans+a[i]*qpow(x,b[i])%p;
ans%=p;
}
return ans;
}
int main(){
cin>>m>>q>>p;
for(int i=1;i<=m;i++){
cin>>a[i]>>b[i];
}
log_2[0]=-1;;
for(int i=0;i<p;i++){
fx[i][0]=f(i);
}
for(int i=1;i<=maxy;i++){
log_2[i]=log_2[i>>1]+1;
}
for(int j=1;j<=30;j++){
for(int i=0;i+(1<<j)-1<=p;i++){
fx[i][j]=fx[fx[i][j-1]][j-1];
}
}
ll x,y,ans;
for(int i=1;i<=q;i++){
cin>>x>>y;
ll l;
ans=x%p;
while(y){
l=log_2[y];
ans=fx[ans][l];
y=y-(1<<l);
}
cout<<ans<<endl;
}
return 0;
}