#include<bits/stdc++.h> 
using namespace std; 
typedef long long ll; 
#define pb push_back 
#define sz size 
#define mp make_pair 
#define ios ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); 
const int N=1e6+1; 
int n,k,mx=0,x=0,y=0,m,d,w; 
int main() 
{ 
 //cout.precision(); 
    cin>>n>>m; 
    double t,a,b=0,p; 
    cin>>t; 
    p=1-t; 
    vector <pair<int,int>> v; 
    vector <pair<int,double>> ans; 
    for(int i=0;i<n;++i) 
    { 
     cin>>d>>w; 
     v.pb(mp(d,w)); 
    } 
    sort(v.begin(),v.end()); 
    for(int i=0;i<v.sz();++i) 
    { 
     a=v[i].second*t; 
     a+=b; 
     b=a*pow(p,(v[i+1].first-v[i].first)); 
     ans.pb(mp(v[i].first,a)); 
     //cout<<fixed<<a<<" "; 
    } 
    sort(ans.begin(),ans.end()); 
    for(int i=0;i<m;++i) 
    { 
     cin>>k; 
     int l=0,r=ans.sz()-1; 
     if(k<ans[0].first) 
     { 
      cout<<0<<" "; 
      continue; 
     } 
     if(k>ans[r].first) 
     { 
      cout<<ans[r].second*pow(p,k-ans[r].first)<<" "; 
      continue; 
     } 
     r++; 
        while(l<=r) 
        { 
            x=(l+r)>>1; 
            if(ans[x].first<k) 
            { 
                l=x+1; 
                y=x; 
            } 
            else if(ans[x].first>k) 
            { 
                r=x-1; 
                d=x; 
            } 
            else 
            { 
                cout<<fixed<<ans[x].second<<" "; 
                y=-1; 
                break; 
            } 
        } 
     if(y!=-1) 
     { 
      if(ans[y+1].first<k) 
      { 
       y++; 
       for(int i=y+1;i<d;++i) 
       { 
        if(ans[i].first<k) 
        { 
         y=i; 
        } 
        else 
        { 
         break; 
        } 
       } 
      } 
      cout<<fixed<<ans[y].second*pow(p,k-ans[y].first)<<" "; 
     } 
    } 
}