#include <bits/stdc++.h>
using namespace std;
const long long base = 233;
const long long ff = 2e6 + 1;
const long long mod = 998244353;
const long long inf = 1e9 + 1;
long long n, d, dep[5001], dfn[ff], f[ff], mul[ff];
long long vs[5001][5001], ss[5001];
void init() {
  memset(dep, 0, sizeof(dep));
  memset(ss, 0, sizeof(ss));
  cin >> n >> d;
  long long nn = n;
  if (d > n * (n - 1) / 2) {
    puts("NO");
    return;
  }
  dep[0] = 1;
  nn--;
  long long td = 1, smn = 0;
  while (nn) {
    if (nn > dep[td - 1] * 2)
      dep[td] = dep[td - 1] * 2, nn -= dep[td++];
    else
      dep[td] = nn, nn -= dep[td++];
  }
  td--;
  for (long long i = 0; i <= td; ++i) smn += dep[i] * i;
  if (d < smn) {
    puts("NO");
    return;
  }
  puts("YES");
  long long top = td, ato = td + 1;
  while (1) {
    if (dep[top] == 1) top--;
    if (smn + ato - top > d) break;
    smn += (ato - top);
    dep[ato]++;
    dep[top]--;
    ato++;
  }
  long long dd = d - smn;
  if (dep[top] == 1) top--;
  dep[top]--;
  dep[top + dd]++;
  long long cnt = 0;
  for (long long i = 0; i <= ato - 1; ++i)
    for (long long j = 1; j <= dep[i]; ++j) cnt++, vs[i][ss[i]++] = cnt;
  for (long long i = 1; i <= ato - 1; ++i) {
    for (long long j = 0; j < ss[i]; ++j) f[vs[i][j]] = vs[i - 1][j / 2];
  }
  for (long long i = 2; i <= n; ++i) cout << f[i] << " ";
  puts("");
  for (long long i = 0; i <= ato + ato; ++i) dep[i] = 0, f[i] = 0, ss[i] = 0;
  cnt = 0;
}
signed main() {
  mul[0] = 1;
  for (long long i = 1; i <= 60; ++i) mul[i] = mul[i - 1] << 1;
  long long T = 1;
  cin >> T;
  while (T--) init();
}
