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

struct itemInfo
{
    int quantity;
    std::string name;
    double price;
};

std::istream& operator>>(std::istream &in, itemInfo &item)
{
    try
    {
        std::string line;

        if (std::getline(in, line))
        {
            auto start = line.find_first_not_of(" \t");
            auto stop = line.find_first_of(" \t", start + 1);
            item.quantity = std::stoi(line.substr(start, stop - start));

            start = line.find_first_not_of(" \t", stop + 1);
            stop = line.find(" at ", start);
            item.name = line.substr(start, stop - start);

            start = line.find_first_not_of(" \t", stop + 4);
            item.price = std::stod(line.substr(start));
        }
    }
    catch (const std::logic_error &)
    {
        in.setstate(std::ios_base::failbit); 
    }

    return in;
}

int main()
{
    itemInfo item;
	std::vector<itemInfo> items;

    while (std::cin >> item)
    { 
        items.push_back(item);
    }

    // use items as needed...
    
    for(auto &item : items)
    {
    	std::cout << item.name << ": " << item.quantity << " @ " << item.price << std::endl;
    }

    return 0;
}