// Original C++ solution (slower):


#include<map>

#include<set>

#include<stack>

#include<queue>

#include<cmath>

#include<ctime>

#include<vector>

#include<cctype>

#include<cstdio>

#include<cstring>

#include<iostream>

#include<algorithm>

using namespace std;



typedef long long LL;

const double pi=3.141592653;

const double eps=1e-10;

const int INF=0x3f3f3f3f;

const int MOD=10007;

const int MAXN=220;

struct people

{

    double pp[MAXN],time[MAXN];

} peo[MAXN];



int n,m,L,p[MAXN],t[MAXN],v[MAXN];

LL Com[MAXN][MAXN];



int main()

{

    Com[0][0]=1;

    for(int i=1;i<=50;i++)

    {

        Com[i][0]=Com[i-1][0];

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

            Com[i][j]=Com[i-1][j]+Com[i-1][j-1];

    }

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

    {

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

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

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

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

            {

                double x=Com[m][j];

                int k;

                for(k=1;k<=j;k++)

                    x*=p[i]/100.0;

                for(;k<=m;k++)

                    x*=(100-p[i])/100.0;

                peo[i].pp[j]=x;

                peo[i].time[j]=(L+0.0)/v[i]+j*t[i];

            }

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

        {

            double ans=0;

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

            {

                double tmp=1;

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

                {

                    if(k==i)

                        continue;

                    double x=0;

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

                        if(peo[k].time[l]>peo[i].time[j])

                            x+=peo[k].pp[l];

                    tmp*=x;

                }

                ans+=tmp*peo[i].pp[j];

            }

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

        }

    }

    return 0;

}

// Optimized solution to the same problem (faster):
#include <cstdio>

#include <cstring>

#include <cmath>

#include <algorithm>

#include <vector>



using namespace std;



#define MAXN 110

#define INF 0x3f3f3f3f

#define PI acos(-1.0)

#define MAX(a,b) (a>b?a:b)

#define MIN(a,b) (a<b?a:b)

#define ABS(m) (m<0?-m:m)

typedef long long LL;



int n,m,l;

LL c[MAXN][MAXN];

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



void Init()

{

    int i,j;

    scanf("%d%d%d",&n,&m,&l);

    for(i=1;i<=n;++i)

        scanf("%d%d%d",p+i,t+i,v+i);

    c[0][0]=1;

    for(i=1;i<=50;++i)

        for(j=1,c[i][0]=1;j<=i;++j)

            c[i][j]=c[i-1][j]+c[i-1][j-1];

}



long double C(long double P,int N,int M)

{

    int i; long double ans=c[N][M];

    for(i=1;i<=M;++i) ans*=P;

    for(;i<=N;++i) ans*=(1-P);

    return ans;

}



void Work()

{

    int i,j,k,x;

    long double ans,r1,r2;

    long double P[MAXN][2];

    LL t1,t2;

    for(i=1;i<=n;++i){

        for(ans=0,j=0;j<=m;++j){

            t1=l+1LL*j*t[i]*v[i];

            r1=C(p[i]/100.0,m,j);

            for(k=1;k<=n;++k){

                if(k==i) continue;

                for(x=1,P[0][0]=P[0][1]=1;x<=m;++x)

                    P[x][0]=P[x-1][0]*p[k]/100.0,P[x][1]=P[x-1][1]*(1-p[k]/100.0);

                for(x=r2=0,t2=l;x<=m&&t2*v[i]<=t1*v[k];t2+=1LL*t[k]*v[k],++x);

                for(r2=0;x<=m;++x) r2+=((long double)c[m][x])*P[x][0]*P[m-x][1];

                r1*=r2;

            }

            ans+=r1;

        }

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

    }

}



int main()

{

    Init();

    Work();

    return 0;

}

// Fastest known solution for this problem: