#include<iostream>
using namespace std ;
const int N=1010;
int y[N][N];
int n;
int a[N];
bool st[N];
int sum;
bool flag;
void print() {
for(int i=1; i<=n; i++)
cout<<a[i]<<" ";
}
void dfs(int step,int ans) {
if(ans>sum||flag) return ;
if(step==n+1&&ans==sum) {
print();
flag=1;
return ;
}
for(int i=1; i<=n; i++) {
if(!st[i]) {
st[i]=1;
a[step]=i;
dfs(step+1,ans+i*y[n][step]);
st[i]=0;
}
}
}
int main() {
cin>>n>>sum;
y[1][1]=1;
for(int i=2; i<=n; i++)//杨辉三角
for(int j=1; j<=i; j++)
y[i][j]=y[i-1][j-1]+y[i-1][j];
dfs(1,0);
return 0;
}