import re
import sys
class IncRange(object):
def __init__(self, start, stop=None, step=1):
if stop is None:
stop = start
self.start, self.stop, self.step = int(start), int(stop), int(step)
self.start_inc, stop_inc = 10 ** len(start), 10 ** len(stop)
while self.stop < self.start:
self.stop += stop_inc
def __iter__(self):
value = self.start
while value <= self.stop:
yield value
value += self.step
def inc_concat(*inc_ranges):
previous = -1
for inc_range in inc_ranges:
for value in inc_range:
while value < previous:
value += inc_range.start_inc
yield value
previous = value
def parse(exp):
return inc_concat(*list(IncRange(*re.split("-|:|\.\.", exp_)) for exp_ in exp.split(",")))
def stringify(it):
return " ".join(map(str, it))
if __name__ == "__main__":
for line in sys.stdin:
print(stringify(parse(line.strip())))
aW1wb3J0IHJlCmltcG9ydCBzeXMKCmNsYXNzIEluY1JhbmdlKG9iamVjdCk6CiAgICBkZWYgX19pbml0X18oc2VsZiwgc3RhcnQsIHN0b3A9Tm9uZSwgc3RlcD0xKToKICAgICAgICBpZiBzdG9wIGlzIE5vbmU6CiAgICAgICAgICAgIHN0b3AgPSBzdGFydAogICAgICAgIHNlbGYuc3RhcnQsIHNlbGYuc3RvcCwgc2VsZi5zdGVwID0gaW50KHN0YXJ0KSwgaW50KHN0b3ApLCBpbnQoc3RlcCkKICAgICAgICBzZWxmLnN0YXJ0X2luYywgc3RvcF9pbmMgPSAxMCAqKiBsZW4oc3RhcnQpLCAxMCAqKiBsZW4oc3RvcCkKICAgICAgICB3aGlsZSBzZWxmLnN0b3AgPCBzZWxmLnN0YXJ0OgogICAgICAgICAgICBzZWxmLnN0b3AgKz0gc3RvcF9pbmMKICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKICAgICAgICB2YWx1ZSA9IHNlbGYuc3RhcnQKICAgICAgICB3aGlsZSB2YWx1ZSA8PSBzZWxmLnN0b3A6CiAgICAgICAgICAgIHlpZWxkIHZhbHVlCiAgICAgICAgICAgIHZhbHVlICs9IHNlbGYuc3RlcAogICAgICAgIApkZWYgaW5jX2NvbmNhdCgqaW5jX3Jhbmdlcyk6CiAgICBwcmV2aW91cyA9IC0xCiAgICBmb3IgaW5jX3JhbmdlIGluIGluY19yYW5nZXM6CiAgICAgICAgZm9yIHZhbHVlIGluIGluY19yYW5nZToKICAgICAgICAgICAgd2hpbGUgdmFsdWUgPCBwcmV2aW91czoKICAgICAgICAgICAgICAgIHZhbHVlICs9IGluY19yYW5nZS5zdGFydF9pbmMKICAgICAgICAgICAgeWllbGQgdmFsdWUKICAgICAgICAgICAgcHJldmlvdXMgPSB2YWx1ZQogICAgICAgICAgICAKZGVmIHBhcnNlKGV4cCk6CiAgICByZXR1cm4gaW5jX2NvbmNhdCgqbGlzdChJbmNSYW5nZSgqcmUuc3BsaXQoIi18OnxcLlwuIiwgZXhwXykpIGZvciBleHBfIGluIGV4cC5zcGxpdCgiLCIpKSkKICAgIApkZWYgc3RyaW5naWZ5KGl0KToKICAgIHJldHVybiAiICIuam9pbihtYXAoc3RyLCBpdCkpCiAgICAgICAgICAgIAppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgZm9yIGxpbmUgaW4gc3lzLnN0ZGluOgogICAgICAgIHByaW50KHN0cmluZ2lmeShwYXJzZShsaW5lLnN0cmlwKCkpKSk=
MSwzLDcsMiw0LDEKMS0zLDEtMgoxOjU6MgoxMDQtMgoxMDQuLjAyCjU0NSw2NDoxMQ==
1,3,7,2,4,1
1-3,1-2
1:5:2
104-2
104..02
545,64:11