#include #include using namespace std; // レベル1のゆ~文字列 const string YUUSAAN = "yuusaan"; // レベルNの文字列の長さを計算する関数 unsigned long long length(int level) { if (level == 1) { return 7; } return 7 * length(level - 1); } // 再帰的にK文字目を求める関数 char getCharAt(int level, unsigned long long K) { if (level == 1) { return YUUSAAN[K - 1]; } unsigned long long prevLength = length(level - 1); if (K <= prevLength) { return getCharAt(level - 1, K); } else if (K <= 2 * prevLength) { return getCharAt(level - 1, K - prevLength); } else if (K <= 3 * prevLength) { return getCharAt(level - 1, K - 2 * prevLength); } else if (K <= 4 * prevLength) { return getCharAt(level - 1, K - 3 * prevLength); } else if (K <= 5 * prevLength) { return getCharAt(level - 1, K - 4 * prevLength); } else if (K <= 6 * prevLength) { return getCharAt(level - 1, K - 5 * prevLength); } else { return getCharAt(level - 1, K - 6 * prevLength); } } int main() { int N; unsigned long long K; cin >> N >> K; cout << getCharAt(N, K) << endl; return 0; }