#include <bits/stdc++.h>
using namespace std;
const int N = 100005;
inline int gcd(int a, int b) {
  while (a != 0 && b != 0) {
    if (a > b) {
      a %= b;
    } else {
      b %= a;
    }
  }
  return max(a, b);
}
struct compare {
  bool operator()(pair<int, int> const& p1, pair<int, int> const& p2) {
    int size = p1.second - p1.first + 1;
    int size2 = p2.second - p2.first + 1;
    if (size2 > size) {
      return 1;
    } else if (size2 == size) {
      if (p1.first > p2.first) {
        return 1;
      }
    }
    return 0;
  }
};
void solve() {
  int n;
  cin >> n;
  vector<int> ans(n);
  int k = 1;
  priority_queue<pair<int, int>, vector<pair<int, int> >, compare> pq;
  pq.push({0, n - 1});
  while (!pq.empty()) {
    pair<int, int> temp = pq.top();
    pq.pop();
    int l = temp.first, r = temp.second;
    int size = (l - r + 1);
    int mid = l + (r - l) / 2;
    ans[mid] = k;
    k++;
    if (mid - 1 >= l) pq.push({l, mid - 1});
    if (r >= mid + 1) pq.push({mid + 1, r});
  }
  for (auto it : ans) cout << it << " ";
  cout << "\n";
  ;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int t = 1;
  cin >> t;
  while (t--) {
    solve();
  }
}
