#include <bits/stdc++.h>
// #pragma GCC optimize("Ofast")
using namespace std;
using ll = long long;
using ld = long double;
using ui = unsigned int;
using ull = unsigned long long;

signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    int n, m;
    cin >> n >> m;
    ld r;
    cin >> r;
    vector<pair<int, int>> ws(n);
    for (int i = 0; i < n; i++) {
        int d, w;
        cin >> d >> w;
        ws[i] = {d, w};
    }
    sort(ws.begin(), ws.end());
    vector<pair<int, int>> quest;
    for (int i = 0; i < m; i++) {
        int q;
        cin >> q;
        quest.emplace_back(q, i);
    }
    sort(quest.begin(), quest.end());
    vector<ld> ans(m);
    ld x = 0;
    int j = 0;
    int last_day = 1;
    for (int i = 0; i < m; i++) {
        int q = quest[i].first;
        int idx = quest[i].second;
        while (j < n && ws[j].first <= q) {
            x *= powl((1 - r), ws[j].first - last_day);
            last_day = ws[j].first;
            x += ws[j].second * r;
            j++;
        }
        x *= powl((1 - r), q - last_day);
        last_day = q;
        ans[idx] = x;
    }
    cout << fixed << setprecision(7);
    for (int i = 0; i < m; i++) {
        cout << ans[i] << " ";
    }
    return 0;
}