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

int n,m,b[300001];
double r;
vector<pair<int,int>> a;
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];
   }
   int cd=1,ind=0;
   double x=0;
   for(int i=0;i<m;i++){
      while(a[ind].first<=b[i]){
         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);
      cout << fixed<<x<<' ';
      cd=b[i];
   }
   return 0;
}