#include <bits/stdc++.h>
using namespace std;
void debug_out() { cerr << endl; }
template <typename Head, typename... Tail>
void debug_out(Head H, Tail... T) {
  cerr << " " << to_string(H);
  debug_out(T...);
}
long long modPow(long long a, long long b) {
  long long res = 1;
  a %= 998244353;
  assert(b >= 0);
  for (; b; b >>= 1) {
    if (b & 1) res = res * a % 998244353;
    a = a * a % 998244353;
  }
  return res;
}
long long gcd(long long a, long long b) {
  long long r;
  while (b) {
    r = a % b;
    a = b;
    b = r;
  }
  return a;
}
void solve() {
  long long n;
  cin >> n;
  n--;
  vector<long long> ans;
  long long x = 1;
  for (int i = 1;; i++) {
    if (n <= 2 * x) {
      ans.push_back(n);
      break;
    }
    long long l = x, r = 2 * x, currx = -1;
    while (l <= r) {
      long long mid = (l + r) >> 1;
      if (2 * mid <= n) {
        currx = mid;
        l = mid + 1;
      } else
        r = mid - 1;
    }
    n -= currx;
    ans.push_back(currx);
    x = currx;
  }
  cout << ans.size() << endl;
  long long prev = 1;
  for (auto &x : ans) {
    cout << (x - prev) << " ";
    prev = x;
  }
  cout << endl;
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  ;
  int testCases = 1;
  cin >> testCases;
  while (testCases--) {
    solve();
  }
  return 0;
}
