Niech $X=(x_1,x_2,\ldots,x_n)$ będzie ciągiem różnych liczb całkowitych. Widmo $X$, oznaczane przez $\operatorname{spec}(X)$, jest multizbiorem $\{|x_i-x_j|:1\le i<j\le n\}$. Multizbiór uwzględnia krotność, lecz ignoruje kolejność. Na przykład $\{1,1,2\}$ i $\{2,1,1\}$ są takie same, ale $\{1,1,2\}$ i $\{1,2\}$ są różnymi multizbiorami. Dla uproszczenia zakładamy, że ciąg $X$ jest rosnący i $x_1=0$. Na przykład, jeśli $X=(0,1,4,5)$, to $\operatorname{spec}(X)=\{1,1,3,4,4,5\}$.
Dla danego $X$ łatwo obliczyć $\operatorname{spec}(X)$. Jednak odzyskanie $X$ z danego $\operatorname{spec}(X)$ nie jest łatwe. W istocie dla dwóch różnych ciągów $X$ i $Y$ może zachodzić $\operatorname{spec}(X)=\operatorname{spec}(Y)$. Na przykład $\operatorname{spec}(0,7,20)=\{7,13,20\}=\operatorname{spec}(0,13,20)$. Twoim zadaniem jest odzyskać wszystkie możliwe ciągi $X$, których $\operatorname{spec}(X)$ jest równe widmu podanemu na wejściu.
Wejście
Pierwszy wiersz przypadku testowego podaje liczbę $n$, czyli długość ciągu liczb całkowitych $X$.
Drugi wiersz podaje widmo $X$, będące multizbiorem. Liczby $d_1,\ldots,d_{\frac{n(n-1)}2}$ są wypisane w kolejności niemalejącej, z pojedynczą spacją między dwiema kolejnymi liczbami.
Wyjście
Najpierw wypisz w jednym wierszu całkowitą liczbę możliwych ciągów $X$ (liczbę rozwiązań). Następnie wypisz wszystkie możliwe ciągi $X$ w porządku leksykograficznym (słownikowym), po jednym w wierszu.
Niech $Y=(y_1,\ldots,y_n)$ i $Z=(z_1,\ldots,z_n)$ będą dwoma rozwiązaniami. $Y$ powinien poprzedzać $Z$ wtedy i tylko wtedy, gdy istnieje indeks $k$, $1\le k\le n$, taki, że $y_k<z_k$ oraz $y_j=z_j$ dla wszystkich $1\le j<k$. Na przykład ciąg $Y=(0,7,20)$ powinien poprzedzać $Z=(0,13,20)$ w porządku leksykograficznym, ponieważ $y_2<z_2$ (czyli $7<13$) i $y_1=z_1$. Dla każdego $X$ wypisz jego elementy rosnąco, z pojedynczą spacją między dwiema kolejnymi liczbami.
Ograniczenia
$2\le n\le62$.
$0<d_1\le d_2\le\cdots\le d_{\frac{n(n-1)}2}$.
Wyjście powinno spełniać: $0\le x_i\le999$ dla $1\le i\le n$ oraz $x_1=0$.
$x_i<x_j$ dla $1\le i<j\le n$.
Przykład
Wejście 1
4 2 2 2 4 4 6
Wyjście 1
1 0 2 4 6
Wejście 2
5 3 3 6 9 9 12 12 15 18 21
Wyjście 2
2 0 3 12 15 21 0 6 9 18 21
Wejście 3
4 5 6 7 8 9 10
Wyjście 3
0