typedef unsigned long long LL ;
map < int , LL > fibo ;
map < int , LL > ::iterator it ;
LL my_pow(LL x , LL y){
LL ans = 1 ;
for(; y; y>>=1 ){
if(y&1)
ans *= x ;
x*=x ;
}
return ans ;
}
void init(){
fibo.clear() ;
LL x1 = 4 ;
LL x2 = 3 ;
fibo[1] = 4 ;
fibo[2] = 3 ;
int id = 3 ;
while(x1 + x2 <= my_pow(2,63)){
fibo[id] = x1+ x2 ;
id++ ;
LL temp = x2 ;
x2 = x1 + x2 ;
x1 = temp ;
}
fibo[id] = x1+ x2 ;
}
char dfs(int id , LL n){
if(n <= 7){
switch(n){
case 1 :
return 'T' ;
case 2 :
return '.' ;
case 3 :
return 'T' ;
case 4 :
return '^' ;
case 5 :
return '_' ;
case 6 :
return '_' ;
case 7 :
return '^' ;
}
}
LL x = fibo[id-1] ;
if(x < n)
return dfs(id - 2 , n - x) ;
else
return dfs(id - 1 , n ) ;
}
char gao(LL n){
init() ;
int id ;
for(it = fibo.begin() ; it != fibo.end() ; it++){
if(it->second >= n){
id = it->first ;
break ;
}
}
return dfs(id , n) ;
}