#include #include #include #include using namespace std; void dfs (int level, vector&A, vector& all) { if (level == 4) { // 生成 string T = ""; string NUPC = "NUPC"; for (int i = 0; i < A.size(); i++) { T += NUPC[i]; if (A[i] == 1) T += T; } all.push_back(T); return; } A[level] = 0; dfs(level + 1, A, all); A[level] = 1; dfs(level + 1, A, all); } int main () { // 普通に全部生成してよい。 int K; cin >> K; vector A(4); vector all; dfs(0, A, all); sort(all.begin(), all.end()); cout << all[K-1] << "\n"; }