#include <bits/stdc++.h>
using namespace std;
int n,m;
int a[120];
int c[20][20];
bool vis[20];
void dfs(int dep,int cnt) {
if(cnt>m)
return ;
if(dep>n&&cnt==m) {
cout<<a[1];
for(int i=2; i<=n; i++)
cout<<' '<<a[i];
exit(0);
}
else
{
return ;
}
for(int i=1; i<=n; i++) {
if (vis[i]==1)
continue;
vis[i]=true;
a[dep]=i;
dfs(dep+1,cnt+i*c[n][dep]);
vis[i]=0;
}
}
int main() {
cin >> n >> m;
c[1][1] = 1;
for (int i = 2; i <= n; i++)
for (int j = 1; j <= i; j++)
c[i][j] = c[i - 1][j] + c[i - 1][j - 1];
dfs(1, 0);
return 0;
}