#include <cstdio>
#include <iostream>
#include <vector>
#include <cstring>
#include <cassert>
#ifdef ONLINE_JUDGE
	#define out(x)
#else
	#define out(x) cerr<<#x"="<<(x)<<endl
#endif
using namespace std;
typedef long long LL;
typedef vector<int> vi;
typedef pair<int, int> pii;
typedef vector<pii> vpii;
#define REP(i,n) for(int i=0; i<int(n); i++)
#define pb push_back
#define mp make_pair
#define X first
#define Y second
char s[612345];
vi L, R;
void text(int L, int R, int sp){
	bool ex=0;
	for(int i=L; i<=R; ++i){
		if(isspace(s[i]))sp=sp?sp:1;
		else {
			while(sp>0){
				putchar(' ');
				--sp;
			}
			putchar(s[i]);
			ex=1;
		}
	}
	if(ex)putchar('\n');
}
//1: opening, -1: closing, 0: empty opening
int tp(int l, int r){
	if(s[l+1]=='/')return -1;
	if(s[r-1]=='/')return 0;
	return 1;
}
void token(int l, int r, int sp){
	while(sp--)putchar(' ');
	for(int i=l; i<=r; ++i)
		putchar(s[i]);
	putchar('\n');
}
int main(){
	int T, len;
	scanf("%d",&T);
	char *p=s;
	while(gets(p)){
		int t=strlen(p);
		p[t]=' ';
		p+=t+1;
	}
	len=p-s;
	s[len]='\0';
	REP(i,len){
		if(s[i]=='<')L.pb(i);
		if(s[i]=='>')R.pb(i);
	}
	assert(L.size()==R.size());
	int sp=0, ttt=0;
	REP(i,L.size()){
		if(sp==0)printf("Case #%d:\n", ++ttt);
		if(i>0)text(R[i-1]+1, L[i]-1, sp);
		int t=tp(L[i], R[i]);
		if(t==-1)--sp;
		token(L[i], R[i], sp);
		if(t==1)++sp;
	}
}
