//(・ω・) #include #include // cout, endl, cin #include // string, to_string, atoi #include // vector #include // min, max, swap, sort, reverse, lower_bound, upper_bound #include // pair, make_pair #include // tuple, make_tuple #include // int64_t, int*_t #include // printf #include // map #include // queue, priority_queue #include // set #include // stack #include // deque #include // unordered_map #include // unordered_set #include // bitset #include // isupper, islower, isdigit, toupper, tolower #include #include //setprecision #include #include //istringstream #include #include #include //std::advance() using namespace std; using ll = long long; using ull = unsigned long long; using ld = long double; #define SZ(x) ((int)(x).size()); #define vec vector template using v = vector; template using vv = v< v >; template using vvv = v< vv >; #define el '\n' #define vl v #define vvl vv #define pl pair #define repab(i, a, b) for(ll i = a; i < (ll)(b); ++i) #define rep(i, n) for(ll i = 0; i < (ll)(n); ++i) #define rep1(i, n) for(ll i = 1; i <= (ll)(n); ++i) #define rrep(i, n) for(ll i = ((ll)(n) - 1); i >= 0; --i) #define rrep1(i, n) for(ll i = ((ll)(n)); i > 0; --i) #define YN(x) cout << ((x) ? "YES\n" : "NO\n"); #define Yn(x) cout << ((x) ? "Yes\n" : "No\n"); #define yn(x) cout << ((x) ? "yes\n" : "no\n"); #define COUT(x) cout << (x) << el; const double pi = 3.141592653589793238; const int inf = 1073741823; const ll infl = 1LL << 60; ll gcd(ll a, ll b){return b ? gcd(b, a % b) : a;} int dx[4] = {1, 0, -1, 0}; int dy[4] = {0, 1, 0, -1}; int main(){ ll t; cin >> t; rep(i, t){ ll n,x; cin >> n >> x; if(x < n * (n + 1) / 2){ cout << -1 << endl; }else{ ll diff = x - n * (n + 1) / 2;//差 rep(j, n){ if(j <= diff - 1) cout << (n - j + 1) << " "; else cout << n - j << " "; } cout << endl; } } return 0; }