#include "bits/stdc++.h"

using namespace std;

#define int long long

double binpow(double a, int b) {
	if(b == 0) return 1.0;
	else if(b % 2) return binpow(a, b - 1) * a * 1.0;
	else {
		double c = binpow(a, b / 2);
		return c * c * 1.0;
	}
}

signed main () {
	int n, q;
	cin >> n >> q;
	double r;
	cin >> r;
	vector <pair <int,int>> v;
	for(int i = 0; i < n; i ++) {
		int day, waste;
		cin >> day >> waste;
		v.push_back({day, waste});
	}
	sort(v.begin(), v.end());
	vector <double> othod(n);
	double x = 0.0;
	for(int i = 0; i < n; i ++) {
		int past = 0;
		if(i) past = v[i].first - v[i - 1].first;
		othod[i] = binpow(1 - r, past) * x + r * v[i].second;
		x = othod[i];
	}
	// for(int i = 0; i < n; i ++) cout << othod[i] << " ";
	
	while(q --) {
		int day;
		cin >> day;
		// day --;
		if(day < v[0].first) {
			cout << 0 << ".000 ";
			continue;
		}
		int l = 0, R = n - 1;
		while(l < R) {
			int mid = (l + R + 1) / 2;
			if(v[mid].first <= day) l = mid;
			else R = mid - 1;
		}
		int past = day - v[l].first;
		cout << fixed << setprecision(7) << othod[l] * binpow((1-r), past) << " ";
 	}
	return 0;
}