#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <cmath>
#include <set>
#include <map>
#include<deque>
#include<iomanip>

using namespace std;
typedef double ll;

ll f(ll x, int n) {
    if (n == 0) {
        return 1;
    }
    if (n % 2 == 0) {
        ll y = f(x, n / 2);
        return y * y;
    }
    else {
        return f(x, n - 1) * x;
    }
}

int main()
{
    cin.tie(0);
    ios_base::sync_with_stdio(false);
    int n, m;
    ll r;
    cin >> n >> m >> r;
    vector<pair<int, ll>> s;
    int j;
    ll x;
    for (int i = 0; i < n; i++) {
        cin >> j >> x;
        s.push_back({ j,  x });
    }
    for (int i = 0; i < m; i++) {
        cin >> x;
        s.push_back({ x , 1e9 + 1 });
    }
    sort(s.begin(), s.end());
    ll o = 0;
    for (int i = 0; i < n + m; i++) {
        if (s[i].second > 1e9) {
            cout << fixed << setprecision(6) << o << ' ';
        }
        else {
            o += r * s[i].second;
        }
        if (i < n + m - 1 && s[i + 1].first - s[i].first > 0) {
            o = f(1 - r, s[i + 1].first - s[i].first) * o;
        }
    }
}