#include <bits/stdc++.h>
using namespace std;
char to_low(char c) {
  if (c >= 'A' && c <= 'Z') return c - 'A' + 'a';
  return c;
}
long long ToInt(string s) {
  long long ans = 0;
  for (int i = 0; i < s.length(); i++) ans = ans * 10 + (s[i] - 48);
  return ans;
}
string ToStr(long long n) {
  string ans;
  long long k = n;
  while (k != 0) {
    ans += char(k % 10 + 48);
    k /= 10;
  }
  reverse(ans.begin(), ans.end());
  return ans;
}
string toRoman(string s) {
  long long n = ToInt(s);
  string digs[] = {"",   "I",   "II",   "III", "IV", "V",
                   "VI", "VII", "VIII", "IX",  "X"};
  string tens[] = {"",   "X",   "XX",   "XXX", "XL", "L",
                   "LX", "LXX", "LXXX", "XC",  "C"};
  string hundreds[] = {"",   "C",   "CC",   "CCC", "CD", "D",
                       "DC", "DCC", "DCCC", "CM",  "M"};
  string th[] = {"", "M", "MM", "MMM", "MMMM"};
  string ans;
  ans += th[n / 1000];
  n %= 1000;
  ans += hundreds[n / 100];
  n %= 100;
  ans += tens[n / 10];
  n %= 10;
  ans += digs[n];
  return ans;
}
long long to10(string a, int n) {
  reverse(a.begin(), a.end());
  long long ans = 0;
  long long k = 1;
  int c;
  for (int i = 0; i < a.length(); i++, k *= n) {
    c = (a[i] - 48);
    if (a[i] == 'A') c = 10;
    if (a[i] == 'B') c = 11;
    if (a[i] == 'C') c = 12;
    if (a[i] == 'D') c = 13;
    if (a[i] == 'E') c = 14;
    if (a[i] == 'F') c = 15;
    if (a[i] == 'G') c = 16;
    if (a[i] == 'H') c = 17;
    if (a[i] == 'I') c = 18;
    if (a[i] == 'J') c = 19;
    if (a[i] == 'K') c = 20;
    if (a[i] == 'L') c = 21;
    if (a[i] == 'M') c = 22;
    if (a[i] == 'N') c = 23;
    if (a[i] == 'O') c = 24;
    if (a[i] == 'P') c = 25;
    if (a[i] == 'Q') c = 26;
    ans += c * k;
  }
  return ans;
}
string toX(long long n, int sys) {
  string ans;
  long long k = n;
  string voc[] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
                  "A", "B", "C", "D", "E", "F", "G", "H", "I", "J",
                  "K", "L", "M", "N", "O", "P", "Q", "R", "S"};
  while (k != 0) {
    ans += voc[k % sys];
    k /= sys;
  }
  reverse(ans.begin(), ans.end());
  return ans;
}
int main() {
  int k, a[2000], mx = -1, st;
  char c = '.';
  memset(a, 0, sizeof(a));
  string s, p;
  cin >> s;
  for (int i = 0; i < s.length(); i++) {
    if (s[i] == ',') {
      k = atoi(p.c_str());
      mx = max(mx, k);
      a[k] = 1;
      p.clear();
      continue;
    }
    p += s[i];
  }
  k = atoi(p.c_str());
  mx = max(mx, k);
  a[k] = 1;
  p.clear();
  int cnt = 0;
  bool fl = false;
  for (int i = 0; i <= mx + 1; i++) {
    if (a[i] == 0) continue;
    if (a[i] == a[i + 1] && !fl) {
      st = i;
      fl = true;
      continue;
    }
    if (a[i] != a[i + 1] && fl && (i - st + 1) >= 2) {
      if (cnt >= 1) cout << ",";
      cout << st << "-" << i;
      cnt++;
      fl = false;
      continue;
    }
    if (a[i] != a[i + 1] && fl && (i - st + 1) < 3) {
      if (cnt >= 1) cout << ",";
      cout << st << "," << i;
      cnt++;
      fl = false;
      continue;
    }
    if (a[i] != a[i + 1] && !fl) {
      if (cnt >= 1) cout << ",";
      cout << i;
      cnt++;
      continue;
    }
  }
  cout << endl;
  return 0;
}
