#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <vector>

struct Node
{
    int numlinks;
    std::string name;

    Node(int num, std::string n) : numlinks(num), name(n)
    {
    }

    friend std::ostream &operator<<(std::ostream &o, Node &node)
    {
        return o << node.name << " has " << node.numlinks << " links";
    }
};
 
int main()
{
    std::vector<std::vector<Node> > distances;
    //std::ifstream MyFile ("file.csv");
    std::istream &MyFile = std::cin;
    //if(MyFile.is_open())
    {
        std::string line;
        while(std::getline(MyFile, line))
        {
            std::istringstream row (line);
            distances.push_back(std::vector<Node>());
            std::string cell;
            while(std::getline(row, cell, ','))
            {
                int dist;
                std::istringstream(cell) >> dist;
                distances.back().push_back(Node(dist, "name"));
            }
        }
    }

    for(std::size_t i = 0; i < distances.size(); ++i)
    {
        for(std::size_t j = 0; j < distances[i].size(); ++j)
        {
            std::cout << distances[i][j] << ", " << std::flush;
        }
        std::cout << std::endl;
    }
}