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
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#include <iostream>
#include <algorithm>
#include <cmath>
#include <string>
using namespace std;

long long liczba =1;
long long licznik=0;
long long sw=0;
long long tab[1000006];

void lvl ( long long k)
{
	while(sw < k)
	{
		licznik++;
		sw+=liczba;
		liczba*=2;
	
	}
	
}


int main(int argc, char** argv) 
{
	long long n, k ;
	cin >> n >> k;
	
	long long pot=1;
	for (int i=1; i <=n; i++)
	{
		tab[i]=pot+tab[i-1];
		pot*=2;
	//	cout << tab[i] << endl;
		if(tab[i]==-1)
		tab[i]=tab[i-1];
	}

	if(k > 3*tab[n])
	{
		cout << "NIE";
		return 0;
	}

	char l;
	//cout << k << "  " << tab[n]+1 << endl;
	if((k-1)/(tab[n])==0)
	l='a';
	if((k-1)/(tab[n])==1)
{	l='b';  k-=tab[n];}
 	if((k-1)/(tab[n])==2)
{	l='c';  k-=2*tab[n];}
 
//	cout << tab[n] << endl;
//	cout << k << endl;
	lvl(k);
	long long pocz=sw-liczba/2+1;
	long long kon=liczba/2;
	k=k-pocz+1;
	pocz=1;
	
cout << l;
	while (licznik>1)
	{
		
	 int srodek= (pocz+kon+1)/2;
	// cout << srodek << endl;
	//cout << pocz << "  " << k << "  "<< kon << " " << srodek<< endl;
	 int wsk=0;

	if(k>=srodek)
	{
		//cout << "*";
		if(l=='a'&& wsk==0)
		{
			cout << "c";
			l='c';
			 wsk=1;
		}
		if(l=='b'&& wsk==0)
		{
			cout << "c";
			l='c';
			 wsk=1;
		}
	
		if(l=='c'&& wsk==0)
		{
			cout << "b";
			l='b';
	        wsk=1;
		}
		
		pocz=srodek;
	}
	else
	{
	
		if(l=='b'&& wsk==0)
		{
			cout << "a";
			l='a';
			 wsk=1;
		}
		if(l=='c'&& wsk==0)
		{
			cout << "a";
			l='a';
			 wsk=1;
		}
		if(l=='a'&& wsk==0)
		{
			cout << "b";
			l='b';
		 	wsk=1;
		}
		
		kon=srodek;
	}
	licznik--;
	
	}
	
	


	return 0;
}