// Slower C++ solution:
#include<stdio.h>

#include<cstring>

#include<iostream>

#include<string>



using namespace std;



const double eps = 1e-12;

#define REP(i, x) for (int i=0;i<x;i++)



double tmp[107][107];

double rest[107][107],rsum[107][107];

int N,M,L;

int p[107],t[107],v[107];

double pp[107];



int main()

{

    while (scanf("%d%d%d",&N,&M,&L) != EOF)

    {

        REP(i,N) scanf("%d%d%d",&p[i],&t[i],&v[i]);

        REP(i,N) pp[i] = p[i] / 100.0;

        REP(i,N)

        {

            REP(j,M+1) REP(k,M+1) tmp[j][k] = 0;

            tmp[0][0] = 1.00;

            for (int j = 1;j <= M;++j)

                for (int k = 0;k <= j;++k)

                {

                    tmp[j][k] = tmp[j-1][k] * (1-pp[i]);

                    if (k) tmp[j][k] += tmp[j-1][k-1] * pp[i];

                }

            for (int j = M;j >= 0;--j)

            {

                rest[i][j] = tmp[M][j];

                rsum[i][j] = tmp[M][j];

           //     cout<<rest[i][j]<<" ";

                if (j!=M) rsum[i][j] += rsum[i][j+1];

            }

        }

        REP(i,N)

        {

            double ans = 0;

            for (int times = 0;times <= M && v[i] != 0;++times)

            {

                double part = 1.00;

                double use = L / (double)v[i] + t[i] * times;

                for (int k = 0;k < N;++k)

                    if (k != i)

                    {

                        if (v[k] == 0) continue;

                        int l = 0,r = M;

                        while (l < r)

                        {

                            int mid = (l+r)>>1;

                            double total = L / (double) v[k] + t[k] * mid;

                            if (total <= use)

                                l = mid+1;

                            else r = mid;

                        }

                        double total = L / (double) v[k] + t[k] * l;

                        

                      //  --l;

                        if (total <= use)

                        {

                            part = 0.00;

                            break;

                        } else

                            part *= rsum[k][l];

                    }

                ans += rest[i][times] * part;

            }

            printf("%.8f\n",ans);

        }

    }

    return 0;

}

// Faster C++ solution for the same problem (measured speedup: 3.530584998851326x):
#include <stdio.h>

#include <algorithm>

#include <math.h>

using namespace std;

const double eps=1e-7;

const int maxn=110;

const int maxm=110;

double lin[maxm][maxm],tmp[maxm][maxm],c[maxm][maxm],ans[maxm],p[maxm],v[maxm],t[maxm];

int main()

{

	for(int i=0;i<maxm;i++)

	{

		c[i][0]=c[i][i]=1;

		for(int j=1;j<i;j++) c[i][j]=c[i-1][j]+c[i-1][j-1];

	}

	int n,m;

	double l;

	while(scanf("%d%d%lf",&n,&m,&l)!=EOF)

	{

		for(int i=0;i<n;i++) scanf("%lf%lf%lf",&p[i],&t[i],&v[i]);

		for(int i=0;i<n;i++) p[i]/=100;

		for(int i=0;i<n;i++)

		{

			for(int j=0;j<=m;j++)

			{

				tmp[i][j]=l/v[i]+j*t[i];

				lin[i][j]=pow(p[i],j)*pow((1-p[i]),m-j)*c[m][j];

			}

			for(int j=m-1;j>=0;j--) lin[i][j]+=lin[i][j+1];

			//for(int j=0;j<=m;j++) printf("%f ",lin[i][j]);

			//printf("\n");

			lin[i][m+1]=0;	

		}

		for(int i=0;i<n;i++)

		{

			for(int k=0;k<=m;k++) ans[k]=pow(p[i],k)*pow((1-p[i]),m-k)*c[m][k];

			for(int j=0;j<n;j++) 

				if(j!=i)

				{

					int q=m;

					for(int p=m;p>=0;p--)

					{

						while(q>=0 && tmp[i][q]>=tmp[j][p]-eps) 

						{

							ans[q]*=lin[j][p+1];

							q--;

						}

						if(q==-1) break;

					}

				}

			double sum=0;

			for(int k=0;k<=m;k++) sum+=ans[k];

			printf("%.9f\n",sum);

		}

	}

}