#include <bits/stdc++.h>

using namespace std;

#define ll long long

ll n, m, k;
ll l[123456];

long double rr, x = 0;
long double ans[123456], pw[1234567];

pair < ll, long double > a[123456];
pair < ll, ll > b[123456];

void solve(){
	cin >> n >> m >> rr;
	for(int i = 1; i <= n; i++) cin >> a[i].first >> a[i].second;
	sort(a + 1, a + n + 1);
	for(int i = 1; i <= m; i++){
		cin >> b[i].first, b[i].second = i;
	}
	pw[0] = 1;
	for(int i = 1; i <= 1000000; i++){
		pw[i] = pw[i - 1] * (1 - rr);
	}
	int id = 0;
	long double y = 0;
	sort(b + 1, b + m + 1);
	for (int i = 1; i <= n; i++) {
		int l = 0, r = m + 1;
		while(r - l > 1) {
			int md = (l + r) / 2;
			if (b[md].first >= a[i].first) {
				r = md;
			} else {
				l = md;
			}
		}
		id = r;
		x = a[i].second * rr;
		if (a[i].first == b[id].first) {
			ans[b[id].second] += x;
			id++;
		}
		for (int j = id; j <= m; j++) {
			y = x;
			if(b[j].first - a[i].first <= 1000000) y = y * pw[b[j].first - a[i].first];
			else break;
			if (y < 0.0000001) break;
			ans[b[j].second] += y;
		}
	}
	cout << fixed << setprecision(6);
	for (int i = 1; i <= m; i++) {
		cout << ans[i] << " ";
	}
}

signed main(){
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	solve();
	return 0;
}