#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef vector<int> vi;
typedef vector<ll> vll;
typedef string str;

#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define all(x) (x).begin(), (x).end()
#define len(x) ((int)(x).size())
#define forn(i, n) for (int i = 0; i < (int)(n); ++i)
#define forr(i, l, r) for (int i = (int)(l); i <= (int)(r); ++i)
#define ford(i, r, l) for (int i = (int)(r); i >= (int)(l); --i)
#define cmin(a, b) a = min(a, b)
#define cmax(a, b) a = max(a, b)

void solve() {
    int n;
    cin >> n;

    auto check = [&](int M) {
        ll sum = 0;
        forr(i, 1, n) sum += 1LL * i * (M / i);
        return sum >= n;
    };

    int low = 1, high = n, ans = n;
    while (low <= high) {
        int mid = low + (high - low) / 2;
        if (check(mid)) {
            ans = mid;
            high = mid - 1;
        } else {
            low = mid + 1;
        }
    }

    cout << ans << "\n";

    vi a;
    int bag = 1;
    ford(i, n, 1) {
        int limit = ans / i;
        while (limit-- > 0 && len(a) + i <= n) {
            forn(j, i) a.pb(bag);
            bag++;
        }
    }
    while (len(a) < n) {
        a.pb(bag++);
    }

    forn(i, n) {
        cout << a[i] << (i == n - 1 ? "" : " ");
    }
    cout << "\n";
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    
    int t;
    if (cin >> t) {
        while (t--) {
            solve();
        }
    }
    return 0;
}
