#include <bits/stdc++.h>
using namespace std;
using ll = long long;
long double binpow(long double x, long long power) {
	long double ans = 1;
	long double num = x;
	while (power > 0) {
		if (power & 1) {
			ans *= num;
			power--;
		} else {
			num *= num;
			power >>= 1;
		}
	}
	return ans;
}
const int INF = 2e9;
int main() {
	int n, m;
	cin >> n >> m;
	long double r;
	cin >> r;
	vector<pair<int, int>> funny;
	for (int i = 0; i < n; ++i) {
		int d, w;
		cin >> d >> w;
		funny.push_back({d, w});
	}
	for (int i = 0; i < m; ++i) {
		int day;
		cin >> day;
		funny.push_back({day, INF + i});
	}
	sort(funny.begin(), funny.end());
	vector<long double> ans(m);
	long double cur = 0;
	for (int u = 0; u < funny.size(); ++u) {
		pair<int, int> i = funny[u];
		if (i.second < INF) {
			cur += i.second * r;
		} else {
			ans[i.second - INF] = cur;
		}
		if (u != funny.size() - 1) {
			cur *= binpow(1 - r, funny[u + 1].first - funny[u].first);
		}
	}
	cout.precision(15);
	for (auto &i : ans) {
		cout << i << " ";
	}
	cout << '\n';
}