#include <bits/stdc++.h>
#define boost ios_base::sync_with_stdio(false);cin.tie(NULL);
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()
#define pll pair<long long, long long>
#define vl vector<ll>
#define pstr pair<string, string>
#define lli long long int
#define ll long long
#define ld long double
#define ull unsigned long long
#define sz size()
#define pb push_back
#define pob pop_back
#define pf push_front
#define ff first
#define ss second
#define F first
#define S second
#define mk make_pair
#define fr front()
#define PI 3.14159265358979323846
using namespace std;
const ll MOD = 1e9 + 7;
const ll N = 2e5 + 5;
const ll inf = 1e18;
const ll maxsize = 105;

ld binpow(ld a, ll b){
    if(b == 0) return 1;
    if(b == 1) return a;
    ld z = binpow(a, b / 2);
    if(b % 2 == 0) return (z * z);
    else return (z * z) * a ;
}

ll binpow_m(ll a, ll b){
    if(b == 1) return a % MOD;
    ll z = binpow(a, b / 2);
    if(b % 2 == 0) return (z * z) % MOD;
    else return (z * z) % MOD * a % MOD;
}

ll lcm(ll a, ll b) {
    return (a / __gcd(a, b)) * b;
}

ll Prime(unsigned long a, unsigned long j){
   return j * j <= a ? (a % j) && Prime(a, j + 1) : 1;
}

bool isPrime(ll n){
    for(ll i = 2; i <= sqrt(n); i++){
        if(n % i == 0){
            return false;
        }
    }
    return true;
}

int main(/*d!ZzAsTer?*/)
{
    boost;
    //freopen("search.in", "r", stdin);
    //freopen("search.out", "w", stdout);
    cout<<setprecision(7)<<fixed;
    ll n,m;
    ld r;
    cin>>n>>m>>r;
    pair<ll,ld> a[n+1];
    pll q[m+1];
    ld ans[m+1];
    for(ll i=1;i<=n;i++) cin>>a[i].F>>a[i].S;
    for(ll i=1;i<=m;i++) cin>>q[i].F, q[i].S=i;
    sort(a+1,a+n+1);
    sort(q+1,q+m+1);
    ll i=1,p=0;
    ld x=0;
    for(ll j=1;j<=m;j++){
        while(i<=n&&a[i].F<=q[j].F){
            x*=binpow(1.0-r,a[i].F-p);
            x+=a[i].S*r;
            p=a[i].F;
            i++;
        }
        x*=binpow(1.0-r,q[j].F-p);
        p=q[j].F;
        ans[q[j].S]=x;
    }
    for(ll i=1;i<=m;i++)cout<<ans[i]<<' ';
    return 0;
}
