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

# include <stdio.h>

# include <string.h>

# include <stdlib.h>

# include <algorithm>

# include <iostream>



# define For(i,x,y)   for((i)=(x);i<(y);(i)++)

# define MAX(x,y)   ((x)>(y)? (x):(y))

# define MIN(x,y)   ((x)<(y)? (x):(y))

# define sz(a)      (sizeof(a))

# define mem(a)     (memset((a),0,sizeof(a)))



# define fop freopen("in.txt","r",stdin);freopen("out.txt","w",stdout);

# define print(x) (printf("%d\n",x))

# define scan(x) (scanf("%d",&x))

# define printc(x) (printf("%c\n",x))

# define scanc(x) (scanf("%c",&x))

# define INF 0x7fffffff



using namespace std;



typedef long long           ll;

ll c[55][55];

double a[105][55],f[105][55],p[105];

int t[105],v[105];

int main()

{

    int i,j,k,n,m,l,ii,jj;

    double ans,tot,tmp;

    c[0][0]=1;

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

      for (j=0;j<=i;j++)

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

    scan(n);scan(m);scan(l);

    //print(n);print(m);print(l);

    For(i,1,n+1)

    {

        scanf("%lf",&p[i]);

        p[i]=p[i]/100.0;

        scan(t[i]);scan(v[i]);

    }

    For(i,1,n+1)

      For(j,0,m+1)

      {

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

          if (v[i])

          {

              f[i][j]=(double)l/(double)v[i];

              f[i][j]+=j*t[i];

          }

          else f[i][j]=INF;

      }

    For (i,1,n+1)

    {

        ans=0;

        For (j,0,m+1)

        {

            tmp=a[i][j];

            For(ii,1,n+1) if (ii!=i)

            {



              tot=0;

              For (jj,0,m+1)

                if (f[i][j]<f[ii][jj])

                  tot+=a[ii][jj];

              tmp*=tot;

            }

            ans+=tmp;

        }

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

    }

    return 0;

}

// Faster C++ solution for the same problem (measured speedup: 4.692666185371459x):
#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;

}