1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <stdio.h>
long long cl(int i) {
  return (1LL<<(i < 64 ? i-1 : 63)) - 1;
}

void bb(int n, long long k, int p) {
  long long l = cl(n+1);
  putchar('a'+p);
  if (!k--) { puts(""); return; }
  if (k<l) bb(n-1, k, p == 0 ? 1 : 0);
  else bb(n-1, k-l, p == 2 ? 1 : 2);
}

void b(int n, long long k){
  long long l = cl(n+1);
  k--;
  if (k<l) bb(n-1, k, 0);
  else if (k<2*l) bb(n-1, k-l, 1);
  else if (k<3*l) bb(n-1, k-2*l, 2);
  else puts("NIE");
}
int main() {
  int n;
  long long k;
  scanf("%d%lld",&n,&k);
  b(n,k);
  return 0;
}
/*
a
ab
aba
abc
ac
aca
acb

 */