1 #include <bits/stdc++.h> 2 #define _for(i,a,b) for(int i = a;i < b;i ++) 3 #define maxn 20 4 #define INF 0x3f3f3f3f 5 using namespace std; 6 7 int n,num; 8 int b[maxn][maxn]; 9 int a[maxn]; 10 void db() 11 { 12 b[0][0] = 1; 13 _for(i,1,15) 14 { 15 b[i][0] = 1; 16 _for(j,1,i) 17 { 18 b[i][j] = b[i-1][j] + b[i-1][j-1]; 19 } 20 b[i][i] = 1; 21 } 22 } 23 int main() 24 { 25 scanf("%d%d",&n,&num); 26 memset(a,0,sizeof(a)); 27 _for(i,0,n) 28 a[i] = i+1; 29 int flag = 0; 30 db(); 31 do 32 { 33 int sumt = 0; 34 _for(i,0,n) 35 { 36 sumt += b[n-1][i]*a[i]; 37 if(sumt>num) 38 break; 39 } 40 if(sumt==num) 41 { 42 flag = 1; 43 break; 44 } 45 } 46 while(next_permutation(a,a+n)); 47 if(flag) 48 { 49 _for(i,0,n) 50 printf("%d ",a[i]); 51 } 52 return 0; 53 }