function f (s) {
const nums = [];
s.replace(/(\d+)-(\d+)|(\d+)/g, function(_, $1, $2, $3) {
if ($3)
nums.push(parseInt($3));
else {
for (let a = parseInt($1), b = parseInt($2); a <= b; a++)
nums.push(a);
}
});
return nums;
}
print(f(">>1"));
print(f(">>1-3"));
print(f(">>1,3"));
print(f(">>1-3,5,9-10"));
ZnVuY3Rpb24gZiAocykgewogIGNvbnN0IG51bXMgPSBbXTsKICBzLnJlcGxhY2UoLyhcZCspLShcZCspfChcZCspL2csIGZ1bmN0aW9uKF8sICQxLCAkMiwgJDMpIHsKICAgIGlmICgkMykKICAgICAgbnVtcy5wdXNoKHBhcnNlSW50KCQzKSk7CiAgICBlbHNlIHsKICAgICAgZm9yIChsZXQgYSA9IHBhcnNlSW50KCQxKSwgYiA9IHBhcnNlSW50KCQyKTsgYSA8PSBiOyBhKyspCiAgICAgICAgbnVtcy5wdXNoKGEpOwogICAgfQogIH0pOwogIHJldHVybiBudW1zOwp9CgpwcmludChmKCI+PjEiKSk7CnByaW50KGYoIj4+MS0zIikpOwpwcmludChmKCI+PjEsMyIpKTsKcHJpbnQoZigiPj4xLTMsNSw5LTEwIikpOwo=