Zadanie G: Suma ciągu jedynkowego

Ciąg liczbowy o wartościach będących liczbami całkowitymi nazywamy jedynkowym, jeżeli dowolne jego sąsiednie wyrazy różnią się od siebie dokładnie o jeden oraz pierwszy jego wyraz jest równy 0. Bardziej precyzyjnie: niech [a1, ..., an] będzie ciągiem o wartościach całkowitych. Powiemy, że ten ciąg jest jedynkowy, jeżeli dla dowolnej liczby całkowitej k spełniającej równość 1<=k<=n zachodzi warunek |ak–ak+1| = 1 oraz a1 = 0.

Zadanie
Napisz program, który wyznaczy ciąg jedynkowy o zadanej długości i sumie elementów lub stwierdzi, że taki ciąg nie istnieje.

Wejście
W pierwszym wierszu wejścia znajduje się jedna liczba całkowita, oznaczająca liczbę zestawów danych, które za chwilę pojawią się na wejściu. Na jeden zestaw składają się dwie liczby n i s (1<=n<=10000, |s|<=50000000) oddzielone spacją, gdzie n oznacza liczbę elementów w ciągu, a s jest żądaną sumą elementów ciągu.

Wyjście
Program powinien wypisać n liczb całkowitych (oddzielonych spacją), będących kolejnymi wyrazami ciągu jedynkowego o zadanej sumie s lub słowo NIE, jeśli taki ciąg nie istnieje. UWAGA! Bardzo ważne jest, żeby najpierw w ciągu występowały możliwie duże liczby. Np. 0 1 2 1 0 -1 0 zamiast 0 -1 0 1 2 1 0.

Przykład

wejście:
1
8 4

wyjście:
0 1 2 1 0 1 0 -1