int get_list(const char *, char **);
int get_rnge(const char *, char **);


void add_number(int x);
int add_range(int x, int y);



int get_list(const char *s, char **e)
{
	int x;
	while (1) {
		skip_space;
		if (!get_rnge(s, e) && !get_number(x, s, e)) break;
		s = *e;

		skip_space;
		if ((*s) == '\0') { putchar('\n'); return 1; }
		if ((*s) == ',')  { s++; continue; }
		break;
	}
	*(const char **)e = s;
	printf(, s);
	return 0;
}

int get_rnge(const char *s, char **e)
{
	int x, y;
	char *ee;
	if (!get_number(x, s, &ee)) return 0;
	s = ee;

	skip_space;
	if (*s != '-') {
		*(const char **)e = s;
		return 0;
	}
	s++;
	if(!get_number(y, s, e)) return 0;
	return add_range(x, y);
}

void add_number(int x)
{
	printf(, x);
}

int add_range(int x, int y)
{
	if (y <= x) return 0;
	while (x <= y) printf(, x++);
	return 1;
}

int main()
{
	char *end;

	
	if (get_list(, &end)) puts();

	
	get_list(, &end);

	return 0;
}