#include <bits/stdc++.h>
using namespace std; namespace {
    using T = long long;
    constexpr char endl = '\n';
    const int maxN = 205;
    const int maxM = 1e5 + 5;
    const T base = 100000;

    T Ceil(T x, T y) {
        return (x + y - 1) / y;
    }

    int n, m;
    T t[maxN], x[maxN], y[maxN];
    bool f[maxM];   
    int ans[maxM];

    void Reach(int i, int x) {
        if(!f[x])
            ans[x] = i, f[x] = true;
    }

    void Solve() {
        cin >> n >> m;
        for(int i = 1; i <= n; i++)
            cin >> t[i] >> x[i] >> y[i];
        for(int i = 1; i <= m; i++)
            ans[i] = -1;
        f[0] = true;
        for(int i = 1; i <= n; i++) 
            for(int j = m; j >= 0; j--) if(f[j]) {
                T now = j;
                for(int k = 1; k <= y[i]; k++) {
                    if(t[i] == 1)   now += Ceil(x[i], base);
                    else            now = Ceil(now * x[i], base);
                    if(now > m || f[now])
                        break;
                    Reach(i, now);
                }
            }
        for(int i = 1; i <= m; i++)
            cout << ans[i] << " \n"[i == m];
    }
}
int main() {
    cin.tie(nullptr)->sync_with_stdio(false);
    int t(1); //cin >> t;
    for(int i = 1; i <= t; i++) Solve();
    cout << flush;
    return 0;
}