#include <bits/stdc++.h>
using namespace std;
const int MAXN = 5010;
int f[MAXN], ch[MAXN], dep[MAXN];
bool vis[MAXN];
int main() {
  int n, d;
  int T;
  scanf("%d", &T);
  while (T--) {
    memset(vis, 0, sizeof(vis));
    memset(ch, 0, sizeof(ch));
    scanf("%d%d", &n, &d);
    int INF = (n * (n - 1)) / 2;
    int cnt_ = 0, cnt = 0;
    for (int i = 1; i <= n; i *= 2) {
      for (int j = i; j < i * 2 && j <= n; j++) {
        cnt += cnt_;
      }
      cnt_++;
    }
    if (d < cnt || d > INF) {
      printf("NO\n");
      continue;
    }
    int cur = INF;
    for (int i = 1; i <= n; i++) dep[i] = i - 1, f[i] = i - 1, ch[i] = 1;
    ch[n] = 0;
    while (cur > d) {
      int v = -1;
      for (int i = 1; i <= n; i++) {
        if (ch[i] == 0 && vis[i] == 0 && (v == -1 || dep[v] > dep[i])) v = i;
      }
      if (v == -1) break;
      int fa = -1;
      for (int i = 1; i <= n; i++) {
        if (ch[i] < 2 && dep[i] < dep[v] - 1 && (fa == -1 || dep[fa] < dep[i]))
          fa = i;
      }
      if (fa == -1) {
        vis[v] = 1;
        continue;
      }
      if (dep[v] - dep[fa] != 2) break;
      ch[f[v]]--;
      ch[fa]++;
      dep[v]--;
      f[v] = fa;
      cur--;
    }
    printf("YES\n");
    for (int i = 2; i <= n; i++) {
      printf("%d%c", f[i], i == n ? '\n' : ' ');
    }
  }
  return 0;
}
