#include using namespace std; bool cmp(vector < int > a , vector < int > b){ for(int j = 0 ; j < a.size() ; j++) if(a[j] < b[j]) return 1; return 0; } int T; vector < vector < int > > sols; int n , S , K , L , R , stop; void check(vector < int > v){ int rem = S; for(auto pp : v){ rem -= pp; } if(rem < 0) return; double med1 , med2; int goal = R; for(int j = n - 1 ; j >= 0 ; j--){ if(j == stop) goal--; int theta = min(goal - v[j] , rem); v[j] += theta; rem -= theta; } if(rem > 0) return; if(n%2) med1 = v[n/2]; else med1 = (v[n/2-1] + v[n/2] + 0.0)/(2.0); for(auto pp : v){ assert(pp >= L && pp <= R); } vector < int > v2; for(int j = 0 ; j < v.size() ; j++){ if(j == K || j == n%K) continue; v2.push_back(v[j]); } v.swap(v2); n -= 2; med2 = v[n/2]; n += 2; v.swap(v2); if(med1 == med2) return; sols.push_back(v); } int main(){ cin>>T; while(T--){ sols.clear(); cin>>n>>S>>K>>L>>R; if(L == R){ puts("-1"); continue; } int half = (n + 1)/2; for(int f = max(0 , half - 3) ; f <= min(n , half + 3) ; f++){ vector < int > v; stop = f - 1; for(int j = 1 ; j <= f ; j++) v.push_back(L); for(int j = 1 ; j <= n - f ; j++) v.push_back(L + 1); check(v); } sort(sols.begin() , sols.end()); if(sols.empty()) puts("-1"); else{ for(int j = 0 ; j < sols[0].size() ; j++){ if(j) printf(" "); printf("%d",sols[0][j]); } puts(""); } } }