// #pragma GCC optimize("O3,unroll-loops")
// #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
#include <bits/stdc++.h>
#define ent '\n'
#define all(x) x.begin(), x.end()
#define s second
#define f first
#define pb push_back
typedef long long ll;
using namespace std;
const int maxn = 3e6 + 250;
const int mod = 1e9 + 7;
const int inf = 1e9;
const int K = 400;
const double Pi = acos(-1.0);
const long double eps = 1e-9;
#define yes cout << "YES\n";
#define no cout << "NO\n";
#define int long long

pair<int,int> d[maxn];
double a[maxn];
double r;
double bw(double a, int n) {
    double res = 1;
    while(n>0) {
        if(n&1) {
            res*=a;
            --n;
        } else {
            a*=a;
            n>>=1;
        }
    }
    return res;
}
void solve() {
    int n, m;
    cin >> n >> m >> r;
    for(int i = 1;i <= n; i++) {
        cin >> d[i].f >> d[i].s;
    }
    sort(d+1,d+n+1);
    for(int i = 1;i <= n; i++) {
        a[i] = a[i-1]*bw(1.0-r, d[i].f-d[i-1].f)+double(r*d[i].s);
    }
    for(int i = 1;i <= m; i++) {
        int x;
        cin >> x;
        int l = 1, tr = n, pos = 0;
        while(l <= tr) {
            int mid = (l + tr) / 2;
            if(d[mid].f<=x) {
                l = mid+1;
                pos = mid;
            } else {
                tr = mid-1;
            }
        }
        if(pos==0) {
            cout << 0 << ' ';
            continue;
        }
        cout.precision(6);
        cout << fixed;
        cout << a[pos] * bw(1.0-r,x-d[pos].f) << ' ';
    }
}
 
signed main () {
    ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    // freopen("position.in", "r" , stdin);
    // freopen("position.out", "w", stdout);
    int t=1;
    // cin >> t;
    for(int i = 1;i <= t; i++) {
        // cout << "Case " << i << ": ";
        solve();
    }
}