#include <bits/stdc++.h>

using namespace std;

//#pragma GCC optimaze("O3")
//#pragma GCC optimaze("Ofast")
//#pragma GCC optimaze("unroll-loops")
//#pragma GCC target("avx2,bmi,bmi2,popcnt,lzcnt")

#include <bits/stdc++.h>

//#define int int64_t
#define ll long long

const int MOD = 1e9 + 7;

using namespace std;

pair<int, int> a1[100000];
long double a2[100000];
int a3[100000];

long double binpow(long double a, int n) {
    if (n == 0) {
        return 1;
    }
    if (n == 1) {
        return a;
    }
    if (n % 2) {
        return binpow(a, n - 1) * a;
    }
    long double x = binpow(a, n / 2);
    return x * x;
}


void solve() {
    int n, m;
    cin >> n >> m;
    long double x;
    cin >> x;
    for (int i = 0; i < n; ++i) {
        int d, w;
        cin >> d >> w;
        a1[i] = {d, w};
    }
    sort(a1, a1 + n);
    for(int i = 0; i < n; ++i){
        a3[i] = a1[i].first;
    }
    long double pr = 0;
    int prd = 0;
    for (int i = 0; i < n; ++i) {
        a2[i] = pr * binpow(1 - x, a1[i].first - prd); // +- 1
        a2[i] += a1[i].second * x;
        prd = a3[i];
        pr = a2[i];
    }
    for(int j = 0;j < m; ++j){
        int q;
        cin >> q;
        auto g = upper_bound(a3, a3 + n, q) - a3;
        if(g == 0){
            cout << 0 << '\n';
            continue;
        }
        g -= 1;
        cout << fixed << setprecision(7) << a2[g] * binpow(1 - x, q - a3[g]) << '\n';


    }
}

int main() {
//    int t;
//    cin >> t;
    for (int i = 0; i < 1; ++i) {
        solve();
    }
    return 0;
}
