#include #include #include #include using namespace std; int n; int d[190], c[401]; int t[20][20]; set< vector > S; void search(int L, int R){ if(L+1==R){ vector v; for(int i=0;i+1> n, n){ S.clear(); memset(c, 0, sizeof(c)); for(int i=0;i> d[i]; if(i!=0) c[d[i]]++; } t[0][n-1] = t[n-1][0] = d[0]; search(0, n-1); for(set< vector >::iterator it=S.begin();it!=S.end();it++){ for(int i=0;i+1size();i++) cout << (*it)[i] << " "; cout << it->back() << endl; } puts("-----"); } }