#include using namespace std; using ll = long long; void solve(ll N, ll K){ // 0 index K--; // 最初の数字を求める ll a = K / (N * 72) + 1; K %= (N * 72); // 2 番目の文字を求める ll b = K / (N * 8); K %= (N * 8); if (b >= a) b++; // 3 番目の文字の候補を b との大小で区別する vector X, Y; for (int i = 0; i < 10; i++){ if (i == a || i == b) continue; if (i < b) X.push_back(i); else Y.push_back(i); } // 3 番目の文字と、長さを求める ll c; ll d; if (K < (ll)(X.size()) * N){ c = X[K % (int)X.size()]; d = K / (int)X.size() + 1; } else{ K -= (ll)(X.size()) * N; c = Y[K % (int)Y.size()]; d = N - K / (int)Y.size(); } cout << d + 2 << " " << a << " " << b << " " << c << "\n"; } int main(){ std::ios::sync_with_stdio(false); std::cin.tie(nullptr); int T; cin >> T; while (T--){ ll N, K; cin >> N >> K; solve(N, K); } }