#include<bits/stdc++.h>
#include<iostream>
#include<algorithm>
#include<bitset>
#include<map>
#include<cmath>
#include<queue>
#include<set>
#include<cmath>
#include<vector>
#include<cstring>
//#include <ext/pb_ds/assoc_container.hpp> 
//#include <ext/pb_ds/tree_policy.hpp>
//using namespace __gnu_pbds;
using namespace std;
#define ll long long
#define inf 0x3f3f3f3f
#define dl long double
#define INF 0x3f3f3f3f3f3f3f3f
#define PI acos(-1)
#define ull unsigned long long
const int maxn = 1e6 + 9;
const int MOD = 1e9+7;
int mod = 999998639;
inline ll qpow(ll b, ll e, ll m = MOD) { ll a = 1; for (; e; e >>= 1, b = b * b % m)if (e & 1)a = a * b % m; return a; }
//inline void prit(__int128 x){if (x < 0){putchar('-');x = -x;}if (x > 9)print(x / 10);putchar(x % 10 + '0');}
ll exgcd(ll a,ll b,ll &x,ll &y){if(b==0) {x=1,y=0;return a;}ll d=exgcd(b,a%b,x,y);ll z=x;x=y,y=z-y*(a/b);return d;}
int vis[maxn],dp[maxn];
const int oo=1e5;
int main()
{
	int n,m;
	while(scanf("%d%d",&n,&m)!=EOF)
	{
		memset(dp,inf,sizeof(dp));
		dp[0]=0;
		for(int i=1;i<=n;i++)
		{
			ll t,x,y;
			scanf("%lld%lld%lld",&t,&x,&y);
			
			if(t==1)
			{
				x=(x+oo-1)/oo;
				vector<int> ve;
				for(int j=0;j<=m;j++)
				{
					if(dp[j]!=inf)
					{
						for(ll k=j+x;k<=m&&dp[k]==inf&&(k-j)/x<=y;k+=x)
						{
							ve.push_back(k);
						}
					}
				}
				for(int j=0;j<ve.size();j++)
				{
					dp[ve[j]]=min(dp[ve[j]],i);
				}
			}
			else 
			{
				//if(x==1) continue;
				vector<int> ve;
				for(int j=1;j<=m;j++)
				{
					if(dp[j]!=inf)
					{
						int num=0;
						for(ll k=ceil((1.0)*j*x/oo);k<=m&&dp[k]==inf;k=ceil(1.0*k*x/oo))
						{
							num++;
							if(num>y) break;
							ve.push_back(k);
						}
					}
				}
				for(int j=0;j<ve.size();j++)
				{
					dp[ve[j]]=min(dp[ve[j]],i);
				}
			}
		}
		for(int i=1;i<=m;i++)
		{
			if(dp[i]==inf) printf("-1 ");
			else printf("%d ",dp[i]);
		}
		printf("\n");
	}
}