#include <bits/stdc++.h>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int t, n, md = 0;
vector<set<int> > ans ;
vector<int> min_days ;
cin >> t ;
while (t--) {
cin >> n ;
int md = 0;
set<int> tmp ;
if (n >= 3) {
for (int i = 1; i <= 3; i++) {
tmp.insert(i) ;
}
ans.push_back(tmp) ;
tmp.clear();
for (int i = 4; i <= n; i = i + 2) {
for (int j = i; j <= i + 1 && j <= n ; j++) {
tmp.insert(j) ;
}
ans.push_back(tmp) ;
tmp.clear() ;
}
} else {
for (int i = 1; i <= n; i++) {
tmp.insert(i) ;
}
ans.push_back(tmp) ;
tmp.clear() ;
}
min_days.push_back(floor(n / 2)) ;
int x , y = 0 ;
for (int i = 0; i < min_days.size(); i++) {
cout << min_days[i] << "\n" ;
x = 0 ;
while (x < min_days[i]) {
vector<set<int> >::iterator it = ans.begin();
set<int> myset = *(it + x + y) ;
for (const int i : myset) {
cout << i << " ";
}
cout << "\n" ;
x++ ;
}
y = x ;
}
}
return 0;
}