#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

class Solution {
public:
    /*
    int = 整数,比如 5
    vector<int> = 整数数组,比如 [1, 3]
    vector<vector<int>> = 二维数组,比如 [[1,3], [2,6]]
    */
    vector<vector<int>> merge(vector<vector<int>>& intervals) {
    //   返回类型       函数名    参数类型
    if(intervals.size()<=1){
        return intervals;
    }
    
    //默认按照区间的第一个元素(起点) 排序。
    sort(intervals.begin(),intervals.end());
    
    //初始:intervals = [[1,3], [2,6], [8,10]]
    //result = [[1,3]]
    vector<vector<int>> result;
    result.push_back(intervals[0]);

    for(int i = 1;i<intervals.size();i++){
        vector<int> &last = result.back(); //last=[1,3]
        if(intervals[i][0]<=last[1]){
            //intervals[1][0]==2  <=  last[1]==3
            last[1]=max(last[1],intervals[i][1]);
        }
        else{
            result.push_back(intervals[i]); //补后面
        }
    }

    return result;
    }
};

int main(){
    Solution solution;
    vector<vector<int>> sections;
    int a,b;
    char c;
    while(cin>>a>>c>>b){
       sections.push_back({a,b});
    }
    
    vector<vector<int>> merged = solution.merge(sections);
    for(int i=0;i<merged.size();i++){
        cout << merged[i][0]<<","<<merged[i][1]<<" ";
    }

    return 0;

}