#include <bits/stdc++.h>
using namespace std;
/*
<<<<It's never too late for a new beginning in your life>>>>
Today is hard
  tomorrow will worse
  but the day after tomorrow will be the sunshine..

HARD WORK BEATS TALENT WHEN TALENT DOESN'T WORK HARD............
Never give up  */

//The most CHALISHKANCHIK
#define ios ios_base::sync_with_stdio(false);cin.tie(NULL);
#define endl '\n'
#define ff first
#define ss second
#define all(x) x.begin(),x.end()
#define rall(x) x.rbegin(),x.rend()
#define pb push_back
#define rew(i, a, b) for(int i = a; i < b; i++)
#define wer(i, a, b) for(int i = b - 1; i >= a; i--)
#define int long long
typedef vector<int> vi;
typedef pair<int, int> pii;
typedef vector<pii> vii;
double bp(double a, int n){
	if(n == 0)return 1.0;
	if(n == 1)return a;
	double b = bp(a, n/2);
	if(n&1)return b*b*a;
	return b*b;
}
void solve(){
	int n, m;
	cin >> n >> m;
	double r;
	cin >> r;
	vii v;
	vi ps;
	int f = 1;
	rew(i, 0, n){
		int d, w;
		cin >> d >> w;
		v.pb({d, w});
		ps.pb(d);
		if(d==1)f=0;
	}
	if(f){v.pb({1, 0});ps.pb(1);}

	double pr[n+f];
	sort(all(v));
	sort(all(ps));
	pr[0] = (v[0].ss*r);
	for(int i = 1; i < n+f; i++){
		int dis = abs(ps[i] - ps[i-1]);
		pr[i] = pr[i-1] * bp(1-r, dis) + (v[i].ss*r);
	}
	//~ /////-----------
	//~ for(auto i:pr)cout << i << ' ';
	//~ cout << endl;
	while(m--){
		int pos;
		cin >> pos;
		int x =	lower_bound(all(ps), pos) - ps.begin();
		if(x == n+f || ps[x] > pos)x--;
		//~ cout << x << ' ' << ps[x] << ' ' << endl;
		int dis = pos-ps[x];
		//~ cout << dis << endl;
		cout << pr[x]*bp(1-r, dis) << ' ' << endl;
	}
}
main(){
	//~ ios
	int t = 1;
	//~ cin >> t;
	while(t--){
		solve();
	}
}










