#include <algorithm>
#include <cassert>
#include <iostream>
#include <vector>

using namespace std;

typedef int64_t ll;

ll nc2(ll n) {
  return n*(n-1)/2;
}

int main() {
  auto adj = [&](vector<ll>& 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<vector<ll>> dp;
  const string base = "ETILLET";
  {
    vector<ll> 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<ll> ndp = dp.back();
    for(auto out: base) {
      for(int i = 0; i < naddnow; i++) {
        adj(ndp, out);
      }
    }
    dp.push_back(ndp);
  }
  vector<ll> 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";
}