#include <stdio.h>
#include <ctype.h>
#include <math.h>

#define PI 3.141592654

float getnum (char *pointer);

main (int argc, char *argv[])
{
   char buffer[1024];	/* Buffer to hold a line */
   char *pointer;
   char *endpointer;
   short instring=0;
   int n,m;
   float num;
   int linenum=0;

   /* Parse into lines, surrounded by G...G */
   pointer=buffer;

   while ( (*pointer=getchar()) != EOF )
   {
      if (*pointer=='G')
      {
         break;
      }
      pointer++;
   }


   while (1)
   {
      linenum++;
      pointer=buffer;
      while ((*pointer=getchar())!=EOF)
      {
         if (isspace(*pointer))
	 {
	    continue;
	 }
	 if (*pointer=='G')
	 {
	    *pointer='\0';
	    break;
	 }
	 pointer++;
      }

      if (*pointer==EOF)
      {
         break;
      }

      /* printf ("%03d [G%sG]\n",linenum,buffer); */
      /* Process Line Here */
      endpointer=pointer-1;
      pointer=buffer;
      printf ("%03d [",linenum);
      
      while (*pointer!='\0' && pointer<=endpointer)
      {
         switch (*pointer)
         {
	    case 'B':
               num=getnum (pointer);
               printf (" %.0f ",num);
	       while (*pointer=='B')
	       {
	          pointer++;
	       }
	       break;
            case 'Q':
               num=getnum (pointer);
	       printf (" %.2f ",num);
	       do
	       {
	          pointer++;
	       }
	       while (*pointer!='Q');
	       pointer++;
	       break;
            case 'd':
               num=getnum (pointer);
               printf (" %.2f ",num);
	       do
	       {
	          pointer++;
	       }
	       while (*pointer!='d');
	       pointer++;
	       break;
            case 'g':
               num=getnum (pointer);
	       num=2*PI*(num/216);
               printf (" %.2frad ",num);
	       do
	       {
	          pointer++;
	       }
	       while (*pointer!='g');
	       pointer++;
	       break;
            case 'K':
	       if (*(pointer+1)=='B' || *(pointer+1)=='Q' ||
	           *(pointer+1)=='d')
	       {
                  pointer++;
	          num=getnum (pointer);
      	          printf (" -%.2f ",num);
	          do
	          {
	             pointer++;
	          }
	          while (*pointer!='K');
	          pointer++;
	       }
	       else
	       {
	          printf ("%~");
		  pointer++;
		  switch (*pointer)
		  {
                     case 'R':
	                pointer++;
	                printf (":TRUE:");
	                break;
                     case 'S':
	                pointer++;
	                printf (":FALSE:");
	                break;
	          }
		  pointer++;
	       }
	       break;
            case 'O':
	       pointer++;
	       num=getnum (pointer);
               printf (" 1/%.0f ",num);
	       do
	       {
	          pointer++;
	       }
	       while (*pointer!='O');
	       pointer++;
	       break;
            case 'R':
	       pointer++;
	       printf (":TRUE:");
	       break;
            case 'S':
	       pointer++;
	       printf (":FALSE:");
	       break;
            case 'H':
	       pointer++;
	       printf (":PLUS:");
	       break;
            case 'I':
	       pointer++;
	       printf (":SUB+:");
	       break;
            case 'J':
	       pointer++;
	       printf (":SUB-:");
	       break;
            case 'L':
	       pointer++;
	       printf (":MULT:");
	       break;
            case 'M':
	       pointer++;
	       printf (":DIV+:");
	       break;
            case 'N':
	       pointer++;
	       printf (":DIV/:");
	       break;
            case 'T':
	       pointer++;
	       printf (":SUB<:");
	       break;
            case 'U':
	       pointer++;
	       printf (":SUB>:");
	       break;
            case 'P':
	       pointer++;
	       printf (":EQV:");
	       break;
            case 'V':
	       pointer++;
	       printf (":IF:");
	       break;
            case 'W':
	       pointer++;
	       printf (":THEN:");
	       break;
            case 'X':
	       pointer++;
	       printf (" X ");
	       break;
            case 'Y':
	       pointer++;
	       printf (" Y ");
	       break;
            case 'Z':
	       pointer++;
	       printf (" Z ");
	       break;
            case 'a':
	       pointer++;
	       printf (" a ");
	       break;
            case 'b':
	       pointer++;
	       printf (" b ");
	       break;
            case 'c':
	       pointer++;
	       printf (" c ");
	       break;
            case 'e':
	       pointer++;
	       printf (":DIV>:");
	       break;
            case 'f':
	       pointer++;
	       printf (":DIV<:");
	       break;
            case 'i':
	       pointer++;
	       printf (":AND:");
	       break;
            case 'j':
	       pointer++;
	       printf (":OR:");
	       break;
            case 'h':
	       pointer++;
	       printf (":COS:");
	       break;
            case 'k':
	       pointer++;
	       printf (":SIN:");
	       break;
	       
	    default:
	       printf (":*%c*:",*pointer);
	       pointer++;
	       break;
	 }

      }
      
      printf ("]\n");
      while ( (*pointer=getchar())!=EOF && *pointer!='G')
      {
      }

   }

}
	    
float getnum (char *pointer)
{
   char *store=pointer;
   float retval=0;
   int length=-1;
   int m;
   int power;
   int mult=1;
   char *dp=NULL;
   
   if (*pointer=='B')
   {
      while (*pointer=='B')
      {
         retval+=1;
         pointer++;
      }
   }
   else if (*pointer=='Q' || *pointer=='g')
   {
      *pointer++;
      length=-1;
      while (*pointer!='Q' && *pointer!='g' && *pointer!='d')
      {
         length++;
	 pointer++;
      }
      if (*pointer=='d')
      {
         dp=pointer;
      }
      pointer=store+1;
      for (m=length/2;m>=0;m--)
      {
         retval+=((int) (*pointer)-'A') * pow(6,m);
	 pointer++;
      }
      if (dp!=NULL)
      {
         retval+=getnum (dp);            
      }
   }
   else if (*pointer=='d')
   {
      *pointer++;
      length=-1;
      while (*pointer!='d')
      {
         length++;
	 pointer++;
      }
      pointer=store+1;
      for (m=length/2;m>=0;m--)
      {
         retval+=((int) (*pointer)-'A') * (1/pow(6,m+1));
	 pointer++;
      }            
   }
   else
   {
      retval=-999;
   }      

   return retval;
   
}

