//数学建模
//2010年8月21日21:55:29
#include<iostream>
#include<algorithm>
#include<vector>
#include<sstream>
#include<string>
using namespace std;
int const maxn=10000;
char in[100000];
vector<string>mm[maxn];
int cnt=0;
bool isdigt(char a)
{
if(a>='0'&&a<='9')
return true;
else
return false;
}
void predo()
{
int len=strlen(in);
for(int i=0;i<len;i++)
{
if(!isdigt(in[i]))
in[i]=' ';
}
}
string ans;
void dfs(int k,string str)
{
if(k==cnt)
{
cout<<str<<endl;
return;
}
int n=mm[k].size();
for(int i=0;i<n;i++)
{
if(k!=0)
//cout<<"-"<<mm[k][i];
{
str+="-";
str+=mm[k][i];
}
else
//cout<<mm[k][i];
str+=mm[k][i];
dfs(k+1,str);
if(k!=0)
//cout<<"-"<<mm[k][i];
{
str=str.substr(0,str.length()-mm[k][i].length()-1);
}
else
//cout<<mm[k][i];
str=str.substr(0,str.length()-mm[k][i].length());
}
}
int main()
{
freopen("IN.txt","r",stdin);
freopen("OUT.txt","w",stdout);
cnt=0;
ans="";
while(cin.getline(in,100000))
{
predo();
//debug
//printf("%s\n",in);
//system("pause");
//
istringstream t(in);
string tem;
while(t>>tem)
{
mm[cnt].push_back(tem);
}
cnt++;
}
//debug
/**//*
printf("cnt = %d\n",cnt);
for(int i=0;i<cnt;i++)
{
for(int j=0;j<mm[i].size();j++)
{
cout<<mm[i][j]<<' ';
}
cout<<endl;
}
system("pause");
*/
dfs(0,ans);
return 0;
}
第一组
0567, 0042, 0025
1487
0303, 0302
0566
0436, 0438, 0437, 0435
0392, 0394, 0393, 0391
0386, 0388, 0387, 0385
3068, 0617, 0619, 0618, 0616
1279
2057, 0721, 0722, 0720
0070, 2361, 3721
0609, 0608
2633, 0399, 0401, 0400
3321, 2535, 2464
3329, 2534
3506, 0167, 0168
0237, 0239, 0238, 0236, 0540
0668
0180, 0181
2079, 2933, 1919, 1921, 1920
0465, 0467, 0466, 0464
3457
第二组
0537, 3580
0526, 0528, 0527, 0525
3045, 0605, 0607
0609, 0608
0087, 0088, 0086
0855, 0856, 0854, 0857
0631, 0632, 0630
3874, 1426, 1427
0211, 0539, 0541, 0540
0978, 0497, 0498
0668
1894, 1896, 1895
1104, 0576, 0578, 0577
3010, 0583, 0582
3676, 0427, 0061, 0060
1961, 2817, 0455, 0456
3262, 0622
1956, 0289, 0291