#include <bits/stdc++.h>
using namespace std;

using db = long double;

db fastPow(db base, int power) {
	db result = 1;
	for (; power; power /= 2) {
		if (power & 1) result *= base;
		base *= base;
	}
	return result;
}

struct event {
	int d, w, t;
	bool operator<(event other) {
		return d < other.d || (d == other.d && t < other.t);
	}
};

void solve() {
	int n, m;
	db r;
	cin >> n >> m >> r;
	db k = 1 - r;
	vector<event> scanline;
	for (int i = 0; i < n; i++) {
		int d, w;
		cin >> d >> w;
		event cur;
		cur.d = d;
		cur.w = w;
		cur.t = 0;
		scanline.push_back(cur);
	}
	vector<db> ans(m);
	for (int i = 0; i < m; i++) {
		int q;
		cin >> q;
		event cur;
		cur.d = q;
		cur.w = i;
		cur.t = 1;
		scanline.push_back(cur);
	}
	sort(scanline.begin(), scanline.end());
	int prev = 0;
	db wp = 0;
	for (auto &sc : scanline) {
		int d = sc.d, w = sc.w, t = sc.t;
		db cur = wp * fastPow(k, d - prev);
		if (t == 1) {
			ans[w] = cur * r;
		} else {
			cur += w;
		} 
		prev = d;
		wp = cur;
	}
	cout.precision(15);
	for (db &i : ans) {
		cout << fixed << i << ' ';
	}
}

signed main() {
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    int tests = 1;
    // cin >> tests;
    while (tests--) {
    	solve();
	}
    return 0;
}
