#include<bits/stdc++.h>
using namespace std;
map< long long , long long > dp;
long long first;
long long second;
long long third;
long long First;
long long Second;
long long Third;
long double a;
unsigned long long answer;
long long int recur( long long i)
{
if ( i< 2 )
{
return dp[ i] ;
}
a = i/ 2 ;
first = floor ( a) ;
First = recur( first) ;
cout << "F " << First<< "\n " ;
a = i/ 3 ;
second = floor ( a) ;
Second = recur( second) ;
cout << "S " << Second<< "\n " ;
a = i/ 4 ;
third = floor ( a) ;
Third = recur( third) ;
cout << "T " << Third<< "\n " ;
long long int sum = First+ Second+ Third;
cout << "S " << sum<< "\n " ;
answer = sum> i? sum: i;
cout << "A " << answer<< " i " << i<< "\n " ;
return answer;
}
void precompute( )
{
dp.insert ( pair< long long , long long > ( 0 , 0 ) ) ;
dp.insert ( pair< long long , long long > ( 1 , 1 ) ) ;
for ( long long i= 2 ,sum= 0 ; i< 2 ; i++ )
{
a = i/ 2 ;
first = floor ( a) ;
a = i/ 3 ;
second = floor ( a) ;
a = i/ 4 ;
third = floor ( a) ;
sum = dp[ first] + dp[ second] + dp[ third] ;
if ( sum> i)
dp.insert ( pair < long long , long long > ( i, sum) ) ;
else
dp.insert ( pair< long long , long long > ( i, i) ) ;
}
}
int main( )
{
precompute( ) ;
long long num;
while ( cin >> num)
{
if ( num< 2 )
{
printf ( "%lld\n " ,dp[ num] ) ;
}
else
{
printf ( "%lld\n " ,recur( num) ) ;
}
}
return 0 ;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKbWFwPGxvbmcgbG9uZywgbG9uZyBsb25nPmRwOwpsb25nIGxvbmcgZmlyc3Q7Cglsb25nIGxvbmcgc2Vjb25kOwoJbG9uZyBsb25nIHRoaXJkOwoJbG9uZyBsb25nIEZpcnN0OwoJbG9uZyBsb25nIFNlY29uZDsKCWxvbmcgbG9uZyBUaGlyZDsKCWxvbmcgZG91YmxlIGE7Cgl1bnNpZ25lZCBsb25nIGxvbmcgYW5zd2VyOwoJbG9uZyBsb25nIGludCByZWN1cihsb25nIGxvbmcgaSkKCXsKCQlpZihpPDIpCgkJewoJCQlyZXR1cm4gZHBbaV07CgkJfQoJCWEgPSBpLzI7CgkJZmlyc3QgPSBmbG9vcihhKTsKCQlGaXJzdCA9IHJlY3VyKGZpcnN0KTsKCQljb3V0PDwiRiAiPDxGaXJzdDw8IlxuIjsKCQlhID0gaS8zOwoJCXNlY29uZCA9IGZsb29yKGEpOwoJCVNlY29uZCA9IHJlY3VyKHNlY29uZCk7CgkJY291dDw8IlMgIjw8U2Vjb25kPDwiXG4iOwoJCWEgPSBpLzQ7CgkJdGhpcmQgPSBmbG9vcihhKTsKCQlUaGlyZCA9IHJlY3VyKHRoaXJkKTsKCQljb3V0PDwiVCAiPDxUaGlyZDw8IlxuIjsKCQlsb25nIGxvbmcgaW50IHN1bSA9IEZpcnN0K1NlY29uZCtUaGlyZDsKCQljb3V0PDwiUyAiPDxzdW08PCJcbiI7CgkJYW5zd2VyID0gc3VtPmk/c3VtOmk7CgkJY291dDw8IkEgIjw8YW5zd2VyPDwiIGkgIjw8aTw8IlxuIjsKCQlyZXR1cm4gYW5zd2VyOwoJfQp2b2lkIHByZWNvbXB1dGUoKQp7CglkcC5pbnNlcnQocGFpcjxsb25nIGxvbmcsIGxvbmcgbG9uZz4gKDAsIDApKTsKCWRwLmluc2VydChwYWlyPGxvbmcgbG9uZywgbG9uZyBsb25nPiAoMSwgMSkpOwoJCWZvcihsb25nIGxvbmcgaT0yLHN1bT0wO2k8MjtpKyspCgkJewoJCQkJYSA9IGkvMjsKCQkJCWZpcnN0ID0gZmxvb3IoYSk7CgkJCQlhID0gaS8zOwoJCQkJc2Vjb25kID0gZmxvb3IoYSk7CgkJCQlhID0gaS80OwoJCQkJdGhpcmQgPSBmbG9vcihhKTsKCQkJCXN1bSA9IGRwW2ZpcnN0XStkcFtzZWNvbmRdK2RwW3RoaXJkXTsKCQkJCWlmKHN1bT5pKQoJCQkJZHAuaW5zZXJ0KHBhaXIgPGxvbmcgbG9uZywgbG9uZyBsb25nPiAoaSwgc3VtKSk7CgkJCQllbHNlCgkJCQlkcC5pbnNlcnQocGFpcjxsb25nIGxvbmcsIGxvbmcgbG9uZz4gKGksIGkpKTsKCQl9CgkKfQppbnQgbWFpbigpCnsKCXByZWNvbXB1dGUoKTsKCWxvbmcgbG9uZyBudW07Cgl3aGlsZShjaW4+Pm51bSkKCXsKCQlpZihudW08MikKCQl7CgkJCXByaW50ZigiJWxsZFxuIixkcFtudW1dKTsKCQl9CgkJZWxzZQoJCXsKCQkJcHJpbnRmKCIlbGxkXG4iLHJlY3VyKG51bSkpOwoJCX0KCX0KCXJldHVybiAwOwp9Cg==