#include using namespace std; using ll = long long; #define rep(i, n) for (ll i=0; i; template ll sz(const S &a) {return a.size();} void solve(vector &s) { ll n,k; cin >> n >> k; ll p = 0; ll t = 0; while (true) { auto [x, y, z] = s[p]; if (y > z) { vector a = {s[p]}; p++; while (p < sz(s) && get<1>(s[p]) > get<2>(s[p]) && get<1>(s[p]) == get<1>(a[0])) { auto [x, y, z] = s[p]; a.emplace_back(x, y, z); p++; } if (t + sz(a) * n >= k) { ll m = (k - t - 1) / sz(a); ll r = (k - t - 1) % sz(a); auto [x, y, z] = a[r]; cout << m+3 << " " << x << " " << y << " " << z << "\n"; return; } t += sz(a) * n; } else { vector a = {s[p]}; p++; while (p < sz(s) && get<1>(s[p]) < get<2>(s[p]) && get<1>(s[p]) == get<1>(a[0])) { auto [x, y, z] = s[p]; a.emplace_back(x, y, z); p++; } if (t + sz(a) * n >= k) { ll m = (k - t - 1) / sz(a); ll r = (k - t - 1) % sz(a); auto [x, y, z] = a[r]; cout << n+2-m << " " << x << " " << y << " " << z << "\n"; return; } t += sz(a) * n; } } } int main() { vector s; rep(i, 10) rep(j, 10) rep(k, 10) { if (i == 0 || i == j || j == k || k == i) continue; s.emplace_back(i, j, k); } sort(s.begin(), s.end()); ll t; cin >>t; rep(i, t) solve(s); }