#include <iostream>
#include <algorithm>
#include <stdio.h>
#include <vector>
#include <queue>
#include <stack>
#include <math.h>
#include <cstring>
#include <cctype>
#define maxm 100010
#define inf 0x3fffffff
using namespace std;
int amount[maxm]={0};
vector<int> v[maxm];
double num=0;
double u,r;
int n;
void DFS(int root,int lay){
if(v[root].size()==0){
num+=pow(r*0.01+1.0,lay)*amount[root]*u;
return;
}
for(int i=0;i<v[root].size();i++){
DFS(v[root][i],lay+1);
}
}
int main() {
int t,h;
cin>>n>>u>>r;
for(int i=0;i<n;i++){
scanf("%d",&t);
if(t==0){
scanf("%d",&h);
amount[i]=h;
continue;
}
for(int j=0;j<t;j++){
scanf("%d",&h);
v[i].push_back(h);
}
}
DFS(0,0);
printf("%0.1f",num);
return 0;
}