#include <bits/stdc++.h>
#define int long long
using namespace std;
int h, w, i, dp[1000001];

int kek(int x) {
	if (x == 1) return 1;
	return x * (x + 1) / 2 + 1;
}
long double binpow(long double a,int n){
	if(n==0){
		return 1;
	}else if(n&1){
		return binpow(a,n-1)*a;
	}else{
		long double l=binpow(a,n/2);
		return l*l;
	}
}
signed main() {
    cin.tie(0)->sync_with_stdio(0);
	// int h, w;
	// cin >> h >> w;
	// dp[1] = kek(w);
	// for (int i = 2; i <= h; i++) {
	// 	dp[i] = dp[i - 1] + dp[1] + w * i;
	// }
	// cout << dp[h];
	int n,m;
	cin>>n>>m;
	long double r;
	cin>>r;
	pair<int,int>p[n+1];
	for(int i=1;i<=n;i++){
		cin>>p[i].first>>p[i].second;
	}
	sort(p+1,p+n+1);
	set<pair<int,long double>>ev;
	ev.insert({0,0});
	int pr=0;
	long double sum=0;
	for(int i=1;i<=n;i++){
		sum=(binpow((1-r),p[i].first-pr-1)*sum)*(1-r)+p[i].second*(r);
		ev.insert({p[i].first,sum});
		pr=p[i].first;
	}
	for(int i=1;i<=m;i++){
		int d;
		cin>>d;
		auto it=ev.upper_bound({d,INT_MAX});
		it--;
		cout<<(*it).second*binpow((1-r),d-(*it).first)<<endl;
	}
}
