Perl 5 -p
, 7171 69 bytes
uses no separator. The negative and positive parts are in "roman order" (largest digit first)
#!/usr/bin/perl -p
$n=$_}{$_=21;ss/@{[$n++%3]}\K/y]/,$n/=3,y/?-y]/>-x]/while--$=;yfor($_=21)x31;y/>?@12/139/d