#include <bits/stdc++.h>
using namespace std;
int main(){
    long double n,m,r;
    cin>>n>>m>>r;
    if(r==0){
        cout<<0;
        return 0;
    }
    map <int,int> s;
    for(int i=0;i<n;i++){
        int d,w;
        cin>>d>>w;
        s[d]=w;
    }
    vector <int> q(m);
    for(int i=0;i<m;i++) cin>>q[i];
    map <int,long double> ans;
    long double proshl=0,nin;
    int max=*max_element(q.begin(),q.end());
    for(int i=1;i<=max;i++){
        if(s.find(i)!=s.end()) nin=(proshl*(1-r)+s[i]*r);
        else nin=(proshl*(1-r));
        proshl=nin;
        if(find(q.begin(),q.end(),i)!=q.end()) ans[i]=nin;
    }
    for(auto i:ans) cout<<fixed<<setprecision(8)<<i.second<<" ";
}
