#include <iostream>
#include <string>
#include <vector>
#include <stdexcept>

std::vector<std::string> parseCppName(std::string line)
{
   std::vector<std::string> retVal;
   int level = 0;
   char closeChars[256];
  
   size_t startPart = 0;
   for (size_t i = 0; i < line.length(); ++i)
   {
      if (line[i] == ':' && level == 0)
      {
          if (i + 1 >= line.length() || line[i + 1] != ':')
             throw std::runtime_error("missing :");
          retVal.push_back(line.substr(startPart, i - startPart));
          startPart = ++i + 1;
      }
      else if (line[i] == '(') {
         closeChars[level++] = ')';
      } 
      else if (line[i] == '<') {
         closeChars[level++] = '>';
      } 
      else if (level > 0 && line[i] == closeChars[level - 1]) {
         --level;
      }
      else if (line[i] == '>' || line[i] == ')') {
         throw std::runtime_error("Extra )>");
      }
   }
   if (level > 0)
       throw std::runtime_error("Missing )>");
   retVal.push_back(line.substr(startPart));
   return retVal;
}

int main() {
   std::string line;
   while (std::getline(std::cin, line)) {
      try {
        std::vector<std::string> parts = parseCppName(line);
        for (size_t i = 0; i + 2 < parts.size(); ++i) 
          std::cout << parts[i] << "@";
        if (parts.size() > 1)
          std::cout << parts[parts.size() - 2] << "@@";
        std::cout << parts[parts.size() - 1] << "\n";
     } catch (std::runtime_error& ex) {
          std::cout << "Error: " << ex.what() << "\nfor: " << line << "\n";
     }
   }
} 
