#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;
}