#include <iostream>
#include <algorithm>
#include <vector>
#include <set>
#include <string>
using namespace std ;
using ll = long long ;
int main(int argc, char *argv[]) {
   string p("SATELLITE") ;
   reverse(p.begin(), p.end()) ; // since unique is at start
   int pos = 0 ;
   int backcheck[256] ;
   for (int i=0; i<256; i++)
      backcheck[i] = -1 ;
   string s ;
   vector<vector<int>> toinc ;
   for (auto c: p) {
      int found = -1 ;
      for (int i=0; i<(int)s.size(); i++)
         if (c == s[i]) {
            found = i ;
            break ;
         }
      if (found < 0) {
         toinc.push_back({}) ;
         found = s.size() ;
         backcheck[(int)c] = found ;
         s.push_back(c) ;
      }
      toinc[found].push_back(pos) ;
      pos++ ;
   }
   vector<ll> k(p.size()) ;
   for (auto &v: toinc)
      reverse(v.begin(), v.end()) ;
   ll goal ;
   cin >> goal ;
   vector<ll> v ;
   string inc = p ;
   inc.pop_back() ;
   int cnt = 1 ;
   vector<int> cc ;
   while (1) {
      for (auto c:inc)
         for (int t=0; t<cnt; t++)
            for (auto j: toinc[backcheck[(int)c]])
               if (j == 0)
                  k[0]++ ;
               else
                  k[j] += k[j-1] ;
      if (k[k.size()-2] > goal)
         break ;
      v.push_back(k[k.size()-2]) ;
      cc.push_back(cnt) ;
      if (v.size() > 1 && v[v.size()-1] < 2 * v[v.size()-2])
         cnt++ ;
   }
   reverse(inc.begin(), inc.end()) ;
   string r ;
   for (int i=v.size()-1; i>=0; i--) {
      while (goal >= v[i]) {
         r.push_back(p[p.size()-1]) ;
         goal -= v[i] ;
      }
      for (auto c: inc)
         for (int j=0; j<cc[i]; j++)
            r.push_back(c) ;
   }
   cout << r << endl ;
}
