#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int val = 5e5+5;
long double binpow (long double z , int q) {
    if(!q)
        return 1 ;
    if(q % 2 == 1)
        return binpow(z , q - 1) * z ;
    else {
        long double k;
        k = binpow(z , q / 2) ;
        return k * k;
    }
}
long double ans1[val];
void solve()
{
    ll q , i , j , m ,n, z ,s = 0 , f  = 0, l , r , k , x , y , mn  = 1e18 , mx = 0;
    cin>>n>>m;
    long double kf , cf;
    cin>>kf;
    int jk[140];
    for(int i=0;i<120;i++)
    {
        jk[i]=i+1;
        jk[i]++;
    }
    cf = 1.0 - kf;
    vector<pair<ll,pair<ll,long double>>>v;
    for(i = 1; i <= n; i++){
        cin>>x>>y;
        v.push_back({x , {1 , y}});
    }
    for(i = 1; i <= m; i++){
            cin >> x;
        v.push_back({x , {2 , i}});
    }
    sort(v.begin(),v.end());
    long double ans = 0;
    k = 0;
    for(int i=0;i<120;i++)
    {
        jk[i]=i+1;
        jk[i]++;
    }
    for(auto to : v){
        x = to.first;
        f = to.second.first;
        y = to.second.second;
        ans = ans *  binpow(cf , x - k);
        if(f == 1)
            ans += kf * y;
        else
            ans1[y] = ans;
        k = x;
    }
    for(i = 1; i <= m; i++)
        cout<<fixed<<setprecision(6)<<ans1[i]<<" ";
        for(int i=0;i<120;i++)
    {
        jk[i]=i+1;
        jk[i]++;
    }
}
int main(){
ios_base::sync_with_stdio(0);
    int tt=1;
    //cin >> tt;
    while(tt--)
    {
        solve();
    }
}