#include<iostream>
#include<algorithm>
#include<string>
#include<cstring>
#include<vector>
using namespace std;
const int maxn=10;
vector <string> s[maxn];//路径
int main(){
int n;
while(scanf("%d",&n)!=EOF){
memset(s,0,sizeof(s));//初始化
if(n==0)break;
for(int i=0;i<n;i++){
string a;
cin>>a;
int index=0;//路径字符串数组下标
string temp;
for(int j=0;j<a.size();j++){//输入
if(a[j]!='\\'&&j!=a.size()-1){
temp+=a[j];
}
else if(a[j]=='\\') {//注意要转义;遇到\就存入一个
s[i].push_back(temp);
temp.clear();
}
else {//最后一个字符不是\
temp+=a[j];
s[i].push_back(temp);
temp.clear();
}
}
}
sort(s,s+n);//排序
for(int j=0;j<s[0].size();j++){//第一个路径输出
for(int k=1;k<=j;k++)printf(" ");
cout<<s[0][j]<<endl;
}
for(int i=1;i<n;i++){
int same=0;//和前一路径相同层数
while(s[i][same]==s[i-1][same]&&same<s[i-1].size())same++;
for(int j=same;j<s[i].size();j++){
for(int k=1;k<=j;k++)printf(" ");
cout<<s[i][j]<<endl;
}
}
printf("\n");
}
return 0;
}