#include <iostream>
#include<map>
#include<vector>
#include<algorithm>
#include<queue>
#include<cmath>
using namespace std;
 
#define ll long long

ll n,m,b[300001],c[300001];
long double r;
vector<pair<ll,ll>> a;
map<ll,long double> ans;

int main()
{
   cin>>n>>m>>r;
   a.resize(n);
   for(int i=0;i<n;i++){
      cin>>a[i].first>>a[i].second;
   }
   sort(a.begin(),a.end());
   for(int i=0;i<m;i++){
      cin>>b[i];
      c[i]=b[i];
   }
   sort(b,b+n);
   ll cd=1,ind=0;
   long double x=0;
   for(int i=0;i<m;i++){
      while(a[ind].first<=b[i] and ind < n){
         x*=pow(1-r,a[ind].first-cd);
         x+=a[ind].second*r;
         cd=a[ind].first;
         ind++;
      }
      x*=pow(1-r,b[i]-cd);
      cout.precision(6);
      ans[b[i]]=x;
      cd=b[i];
   }
   cout.precision(6);
   for(int i=0;i<m;i++){
      cout<<fixed<<ans[c[i]]<<' ';
   }
   return 0;
}