#include <bits/stdc++.h>
#define ll long long
#define int long long
#define Sayan ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define file(s) if (fopen(s".in", "r")) freopen(s".in", "r", stdin), freopen(s".out", "w", stdout)
#define all(a) a.begin() , a.end()
#define Int(a,x) a+1 , a+1+x
#define sz() size()
#define F first
#define S second
#define pb push_back
#define yes cout << "YES\n"
#define no cout << "NO\n"
#define pii pair<ll,ll>
using namespace std ;

const ll N = 3e5+5;
const ll INF = 1e18;
const ll mod = 1e9+7;

map<int,int>mp;
pair<int,double>a[N];

signed main () {
	Sayan;
	int tt=1;
	//  cin>>tt;
	while(tt--){
		int n,m;
		cin>>n>>m;
		double r;
		cin>>r;
		vector<double>ans;
		for(int i=1;i<=n;i++)cin>>a[i].F>>a[i].S;
		sort(a+1,a+1+n);
		for(int i=1;i<=n;i++)mp[a[i].F]=mp.size();
		double val=a[1].S*r;
		ans.pb(val);
		for(int i=2;i<=n;i++){
			if(a[i].F!=a[i-1].F+1)val*=pow(1-r,a[i].S-a[i-1].S);
			val=(val*(1-r))+(a[i].S*r);
			ans.pb(val);
		}
		for(int i=1;i<=m;i++){
			int x;
			cin>>x;
			if(mp[x]==0){
				int L=1,R=n;
				int res=0;
				while(L<=R){
					int md=(L+R)/2;
					if(a[md].F<=x){
						L=md+1;
						res=md;
					}else R=md-1;
				}
				if(res==0)cout<<"0 ";
				else cout<<fixed<<setprecision(6)<<ans[res-1]*pow(1-r,x-a[res].F)<<' ';
			}
			else cout<<fixed<<setprecision(6)<<ans[mp[x]-1]<<' ';
		}
	}
}
