#include #include #include #include using namespace std; typedef int64_t ll; ll nc2(ll n) { return n*(n-1)/2; } int main() { auto adj = [&](vector& dp, char ch) { if(ch == 'E') { dp[5] += dp[4]; dp[0]++; } if(ch == 'T') { dp[1] += dp[0]; dp[6] += dp[5]; } if(ch == 'I') { dp[2] += dp[1]; } if(ch == 'L') { dp[4] += dp[3]; dp[3] += dp[2]; } }; vector> dp; const string base = "ETILLET"; { vector basev(7); for(auto out: base) adj(basev, out); dp.push_back(basev); } ll n; cin >> n; ll addnow = 1; while(dp.back()[2] <= n && dp.size() < 8) { ll naddnow = addnow * 2; if(naddnow == addnow) naddnow++; addnow = naddnow; vector ndp = dp.back(); for(auto out: base) { for(int i = 0; i < naddnow; i++) { adj(ndp, out); } } dp.push_back(ndp); } vector add(dp.size()); for(int i = add.size()-1; i >= 0; i--) { add[i] = n / dp[i].back(); n %= dp[i].back(); } addnow = 1; string ret = ""; for(int i = 0; i < dp.size(); i++) { for(int a = 0; a < addnow; a++) ret += "E"; for(int a = 0; a < addnow; a++) ret += "T"; for(int a = 0; a < addnow; a++) ret += "I"; for(int a = 0; a < addnow; a++) ret += "L"; for(int a = 0; a < addnow; a++) ret += "L"; for(int a = 0; a < addnow; a++) ret += "E"; for(int a = 0; a < addnow; a++) ret += "T"; while(add[i]--) ret += "A"; addnow *= 2; } ret += "S"; reverse(ret.begin(), ret.end()); cout << ret << "\n"; }