/*
 * Algorithm from F. J. Gruenberger, "What Should We Compute?", RAND
 * Corporation, September 1963
 *
 * Program by Lee Wittenberg, Kean University
 * October 2008
 */
#include <stdio.h>

//#define UNIX
#ifdef UNIX
typedef long long _int64;
#define FORMAT  "%d %d %lld\n"
#else
#define FORMAT  "%d %d %I64d\n"
#endif

#define NUM_DIGITS  20

int ZERO[NUM_DIGITS] = {0};

void copy_num(int src[], int dest[])
{
    int i;
    for (i = 0; i < NUM_DIGITS; i++)
        dest[i] = src[i];
}

void mult(int a[], int b[], int result[])
{
    int i, j, r;
    copy_num(ZERO, result);
    for (i = 0; i < NUM_DIGITS; i++) {
        if (a[i] == 0) continue;
        for (j = 0; j < NUM_DIGITS; j++) {
            if(b[j] == 0) continue;
            r = i + j;
            if (r < NUM_DIGITS) {
                result[r] += a[i] * b[j];
            }
            if (r < NUM_DIGITS - 1 && result[r] > 9) {
                result[r + 1] += result[r] / 10;
            }
            if (r < NUM_DIGITS) {
                result[r] %= 10;
            }
        }
    }
}

int powtab[50][NUM_DIGITS] = {{2}};
_int64 ntab[21] = {0, 1};

int digits_ok(int pow[], int r)
{
    int i;
    for(i = 0; i < r; i++) {
        if (pow[i] != 1 && pow[i] != 2)
            return 0 == 1;
    }
    return 1 == 1;
}

void init_powtab()
{
    int i;
    for (i = 0; i < 49; i++) {
        mult(powtab[i],powtab[i],powtab[i+1]);
    }
}

void new_pow(_int64 n, int result[])
{
    int i;
    copy_num(ZERO, result);
    result[0] = 1;
    for (i = 0; n != 0; i++) {
        if ((n & 0x1) != 0) {
            int temp[NUM_DIGITS];
            mult(result, powtab[i], temp);
            copy_num(temp, result);
        }
        n >>= 1;
    }
}

int main()
{
    int i, r, num_cases;
    int pow[NUM_DIGITS] = {2,3};    // 32
    _int64 delta, n;

    init_powtab();
    delta = 4; n = 5;
    for (r = 2; r <= 20; r++) {
        while (!digits_ok(pow, r)) {
            n += delta;
            new_pow(n, pow);
        }
        ntab[r] = n;
        delta *= 5;
    }

    scanf("%d\n", &num_cases);
    for (i = 1; i <= num_cases; i++) {
        scanf("%d\n", &r);
        printf(FORMAT, i, r, ntab[r]);
    }
    return 0;
}

