#include <stdio.h>
#define MAXN 30
long long d[MAXN];
long long k;
int poz=0;
FILE *fout;
void haibagabaga(long long prod, int st, int dr){
if(st>dr){
return ;
}
int i=st;
while(k>prod*d[i-st]*d[dr-i]){
k-=prod*d[i-st]*d[dr-i];
i++;
}
fprintf(fout, "%d ", i);
haibagabaga(prod*d[dr-i], st, i-1);
haibagabaga(prod, i+1, dr);
}
int main(){
int n, i, j;
FILE *fin;
fin=fopen("planeta.in", "r");
fout=fopen("planeta.out", "w");
fscanf(fin, "%d%lld", &n, &k);
d[0]=d[1]=1;
for(i=2; i<=n; i++){
for(j=1; j<=i; j++){
d[i]+=d[i-j]*d[j-1];
}
}
haibagabaga(1, 1, n);
fclose(fin);
fclose(fout);
return 0;
}