#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
#include <string>
using namespace std;
string s;
int len;
bool cmp(int s1, int t1, int s2, int t2)
{
while(s[s1] == '0' && s1 <= t1)
s1++;
while(s[s2] == '0' && s2 <= t2)
s2++;
if(s1 > t1 && s2 > t2)
return true;
if((t1 - s1) > (t2 - s2))
return false;
else if((t1 - s1) < (t2 - s2))
return true;
else
{
for(int i = s1, j = s2; i <= t1; i++, j++)
{
if(s[i] > s[j])
return false;
else if(s[i] < s[j])
return true;
}
}
return false;
}
int main()
{
while(true)
{
cin>>s;
len = s.length();
//cout<<len<<endl;
if(len == 1 && s[0] == '0')
break;
vector<int> dpforward(len,0);
vector<int> dpbackward(len,0);
for(int i = 1; i < len; i++)
{
for(int j = i-1; j >=0; j--)
if(cmp(dpforward[j], j, j+1, i))
{
dpforward[i] = j+1;
break;
}
}
/*int pos = dpforward[len-1], i = len-1;
string ans="";
while(i >=0)
{
while(i >= pos && i >=0)
ans=s[i--]+ans;
if(i >=0)
ans=','+ans;
pos = dpforward[pos - 1];
}
//printf("\n");
cout<<ans<<endl;*/
int tlen = dpforward[len-1];
dpbackward[tlen] = len - 1;
for(int i = tlen - 1; s[i] == '0'; i--)
dpbackward[i] = len - 1;
for(int i = tlen - 1; i >= 0; i--)
{
for(int j = i; j <= tlen - 1; j++)
{
if(cmp(i, j, j + 1, dpbackward[j+1]))
dpbackward[i] = max(dpbackward[i], j);
}
}
int pos = dpbackward[0], i = 0;
string ans="";
while(i < len)
{
while(i <= pos && i < len)
ans=ans+s[i++];
if(i < len)
ans=ans+',';
pos = dpbackward[pos + 1];
}
cout<<ans<<endl;
}
return 0;
}