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

int main()
{
    std::istream& infile = std::cin;
    std::map < int, std::string > ID;
    std::map < int, std::string > dataSetMap;
    int idNumber= 0;
    int idDataSetNumber = 0;

    std::string line;
    std::vector<std::string> dataSetString;
    std::string seqid;

    bool success = std::getline(infile, line);
    while(success) {
        if( line.substr(0,1) == ">" ) {
            seqid = line.substr(1,line.length() - 1);
            ID.insert(make_pair( idNumber++, seqid));
            std::string data;
            while(success = std::getline(infile, line)) {
                if(line.substr(0,1) == ">") break;
                data += line;
            }
            dataSetMap.insert(make_pair(idDataSetNumber++, data));
        } else {
            std::cout << "Invalid input file. It needs to start with >SOME_ID" << std::endl;
            return 1;
        }
    }

    std::cout << "Parsed data ----------------" << std::endl;
    for(std::map<int,std::string>::const_iterator it = dataSetMap.begin(); it != dataSetMap.end(); ++it) {
        std::cout << "Id: " << ID[it->first] << std::endl;
        std::cout << (it->second) << std::endl;
    }
}
