#include <iostream>
#include <vector>
#include <cstring>
using namespace std;
double prices[100000];
double price, rate;
int suppliers[100000];
double max_price = 0;
int max_count = 0;
void getPrice(int index){
if(prices[index] > 0)
return;
if(suppliers[index] < 0)
prices[index] = price;
else{
getPrice(suppliers[index]);
prices[index] = prices[suppliers[index]] * rate;
}
if(max_price == prices[index])
max_count++;
else if(max_price < prices[index]){
max_price = prices[index];
max_count = 1;
}
}
int main()
{
int N;
cin>>N>>price>>rate;
rate = 1 + rate/100;
memset(prices, -1, sizeof(double) * 100000);
int i = 0;
while(cin>>suppliers[i++]);
i = -1;
while(++i < N)
getPrice(i);
printf("%.2f %d", max_price, max_count);
}