/******************
TESTER CODE
**OPTIMAL**
Problem- Count Nodes
Tester- spj_29
Complexity- nlog^2(n) ( can be improved to nlognlog(logn) )
*******************/
#include <bits/stdc++.h>
using namespace std;
#define SPEED ios::sync_with_stdio(false); cin.tie(0); cout.tie(0)
#define fileio freopen("input1.txt", "r", stdin),freopen("output1.txt", "w", stdout)
#define ll int
#define FF first
#define SS second
#define mp make_pair
#define pb push_back
#define pii pair<int,int>
#define pll pair<long long int,long long int>
#define sd(x) scanf("%d",&x)
#define slld(x) scanf("%lld",&x)
#define pd(x) printf("%d\n",x)
#define plld(x) printf("%lld\n",x)
#define pss printf
#define MOD 1000000007
#define INF 1e18
#define eps 0.00001
#define endl '\n'
#define debug(n1) cout<<n1<<endl
ll n,t;
ll dp[2][31][50005];
ll at[31][50005];
ll m[50005];
ll ans[31];
ll cnt=0;
void build(ll l,ll r,ll d)
{
at[d][r]=l;
if(m[r]==0)m[r]=d;
if(l==r)return;
ll mid=(l+r)>>1;
build(l,mid,d+1);
build(mid+1,r,d+1);
}
void clear()
{
cnt=0;
memset(m,0,sizeof m);
memset(ans,0,sizeof ans);
memset(dp,0,sizeof dp);
memset(at,0,sizeof at);
}
int main() {
sd(t);
while(t--)
{
clear();
sd(n);
build(1,n,1);
for(int i=0;i<31;i++)
dp[0][i][0]=1;
for(int j=1;j<=n;j++)
dp[0][30][j]=1;
for(int i=1;i<31;i++)
{
for(int j=0;j<=n;j++)
{
for(int h=0;h<31;h++)
dp[i%2][h][j]=0;
for(int h=m[j];at[h][j]!=0;h++)
{
dp[i%2][h][j]=dp[1-(i%2)][30][at[h][j]-1];
if(h!=m[j])
dp[i%2][h][j]-=dp[1-(i%2)][h][at[h][j]-1];
}
for(int h=1;h<31;h++)
dp[i%2][h][j]+=dp[i%2][h-1][j];
ans[i]+=dp[(i%2)][30][j];
}
if(ans[i])cnt++;
else break;
}
pd(cnt);
for(int i=1;i<=cnt;i++)
pss("%d ",ans[i]);
pss("\n");
}
return 0;
}
LyoqKioqKioqKioqKioqKioqKgogICBURVNURVIgQ09ERQoKICAgICoqT1BUSU1BTCoqCgpQcm9ibGVtLSBDb3VudCBOb2RlcwpUZXN0ZXItIHNwal8yOQpDb21wbGV4aXR5LSBubG9nXjIobikgKCBjYW4gYmUgaW1wcm92ZWQgdG8gbmxvZ25sb2cobG9nbikgKQoKKioqKioqKioqKioqKioqKioqKi8KI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiAKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAojZGVmaW5lIFNQRUVEIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgY2luLnRpZSgwKTsgY291dC50aWUoMCkKI2RlZmluZSBmaWxlaW8gZnJlb3BlbigiaW5wdXQxLnR4dCIsICJyIiwgc3RkaW4pLGZyZW9wZW4oIm91dHB1dDEudHh0IiwgInciLCBzdGRvdXQpCiNkZWZpbmUgbGwgaW50CiNkZWZpbmUgRkYgZmlyc3QKI2RlZmluZSBTUyBzZWNvbmQKI2RlZmluZSBtcCBtYWtlX3BhaXIKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBwaWkgcGFpcjxpbnQsaW50PgojZGVmaW5lIHBsbCBwYWlyPGxvbmcgbG9uZyBpbnQsbG9uZyBsb25nIGludD4KI2RlZmluZSBzZCh4KSBzY2FuZigiJWQiLCZ4KQojZGVmaW5lIHNsbGQoeCkgc2NhbmYoIiVsbGQiLCZ4KQojZGVmaW5lIHBkKHgpIHByaW50ZigiJWRcbiIseCkKI2RlZmluZSBwbGxkKHgpIHByaW50ZigiJWxsZFxuIix4KQojZGVmaW5lIHBzcyBwcmludGYKI2RlZmluZSBNT0QgMTAwMDAwMDAwNwojZGVmaW5lIElORiAxZTE4CiNkZWZpbmUgZXBzIDAuMDAwMDEKI2RlZmluZSBlbmRsICdcbicKI2RlZmluZSBkZWJ1ZyhuMSkgY291dDw8bjE8PGVuZGwKbGwgbix0OwpsbCBkcFsyXVszMV1bNTAwMDVdOwpsbCBhdFszMV1bNTAwMDVdOwpsbCBtWzUwMDA1XTsKbGwgYW5zWzMxXTsKbGwgY250PTA7CnZvaWQgYnVpbGQobGwgbCxsbCByLGxsIGQpCnsKICAgIGF0W2RdW3JdPWw7CiAgICBpZihtW3JdPT0wKW1bcl09ZDsKICAgIGlmKGw9PXIpcmV0dXJuOwogICAgbGwgbWlkPShsK3IpPj4xOwogICAgYnVpbGQobCxtaWQsZCsxKTsKICAgIGJ1aWxkKG1pZCsxLHIsZCsxKTsKfQp2b2lkIGNsZWFyKCkKewogICAgY250PTA7CiAgICBtZW1zZXQobSwwLHNpemVvZiBtKTsKICAgIG1lbXNldChhbnMsMCxzaXplb2YgYW5zKTsKICAgIG1lbXNldChkcCwwLHNpemVvZiBkcCk7CiAgICBtZW1zZXQoYXQsMCxzaXplb2YgYXQpOwp9CmludCBtYWluKCkgewpzZCh0KTsKd2hpbGUodC0tKQp7CiAgICBjbGVhcigpOwogICAgc2Qobik7CiAgICBidWlsZCgxLG4sMSk7CiAgICBmb3IoaW50IGk9MDtpPDMxO2krKykKICAgICAgICBkcFswXVtpXVswXT0xOwogICAgZm9yKGludCBqPTE7ajw9bjtqKyspCiAgICAgICAgZHBbMF1bMzBdW2pdPTE7CiAgICBmb3IoaW50IGk9MTtpPDMxO2krKykKICAgIHsKICAgICAgICBmb3IoaW50IGo9MDtqPD1uO2orKykKICAgICAgICB7CiAgICAgICAgICAgIGZvcihpbnQgaD0wO2g8MzE7aCsrKQogICAgICAgICAgICAgICAgZHBbaSUyXVtoXVtqXT0wOwogICAgICAgICAgICBmb3IoaW50IGg9bVtqXTthdFtoXVtqXSE9MDtoKyspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGRwW2klMl1baF1bal09ZHBbMS0oaSUyKV1bMzBdW2F0W2hdW2pdLTFdOwogICAgICAgICAgICAgICAgaWYoaCE9bVtqXSkKICAgICAgICAgICAgICAgICAgICBkcFtpJTJdW2hdW2pdLT1kcFsxLShpJTIpXVtoXVthdFtoXVtqXS0xXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmb3IoaW50IGg9MTtoPDMxO2grKykKICAgICAgICAgICAgICAgIGRwW2klMl1baF1bal0rPWRwW2klMl1baC0xXVtqXTsKICAgICAgICAgICAgYW5zW2ldKz1kcFsoaSUyKV1bMzBdW2pdOwogICAgICAgIH0KICAgICAgICBpZihhbnNbaV0pY250Kys7CiAgICAgICAgZWxzZSBicmVhazsKICAgIH0KICAgIHBkKGNudCk7ICAgIAogICAgZm9yKGludCBpPTE7aTw9Y250O2krKykKICAgICAgICBwc3MoIiVkICIsYW5zW2ldKTsKICAgIHBzcygiXG4iKTsKfQogICAgcmV0dXJuIDA7CiAgICAgICAgICAgfQ==