#include <bits/stdc++.h>
const int MAXN = 55;
int escolha[MAXN];
int m, n;
void rec(int a, int b) {
  if (b == 2 && a == 1) {
    escolha[n - 1] = 1;
    escolha[n] = 0;
    return;
  }
  if (b == 2 && a == 2) {
    escolha[n - 1] = 0;
    escolha[n] = 1;
    return;
  }
  if (a > (1 << (b - 2))) {
    escolha[n - b + 1] = 0;
    a -= (1 << (b - 2));
  } else
    escolha[n - b + 1] = 1;
  rec(a, b - 1);
  return;
}
int main() {
  escolha[0] = 999;
  scanf("%d %d", &n, &m);
  if (n == 1) {
    printf("1");
    return 0;
  }
  rec(m, n);
  for (int i = 1; i <= n; i++) {
    if (escolha[i] == 1) printf("%d ", i);
  }
  for (int i = n; i >= 1; i--) {
    if (escolha[i] == 0) printf("%d ", i);
  }
  return 0;
}
