#include <cstdio>
#include <cstdlib>
int main() {
	int n;
	long long k;
    std::scanf("%d %lld", &n, &k);
    if (n <= 60 && (k - 1) / ((1ULL << n) - 1) > 2) {
		std::printf("NIE");
	} else {
		int p = 'd';
		int i = n - 60;
		if (k < i)
			i = k;
		if (i > 0) {
			k -= i;
			n -= i;
			k %= (2ULL << n) - 1;
			p = 'b';
			while (i--) {
				std::putchar(p ^= 3);
			}
		}
		while (k--) {
			std::lldiv_t d = std::div(k, (1ULL << n--) - 1);
			k = d.rem;
			int r = 'a' + d.quot;
			std::putchar(p = r + (r >= p));
		}
	}
    return 0;
}
        | 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 | #include <cstdio> #include <cstdlib> int main() { int n; long long k; std::scanf("%d %lld", &n, &k); if (n <= 60 && (k - 1) / ((1ULL << n) - 1) > 2) { std::printf("NIE"); } else { int p = 'd'; int i = n - 60; if (k < i) i = k; if (i > 0) { k -= i; n -= i; k %= (2ULL << n) - 1; p = 'b'; while (i--) { std::putchar(p ^= 3); } } while (k--) { std::lldiv_t d = std::div(k, (1ULL << n--) - 1); k = d.rem; int r = 'a' + d.quot; std::putchar(p = r + (r >= p)); } } return 0; } | 
 
            
         English
                    English