#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
typedef long long LL;
char s[108];
vector<int> num[108];
void dfs(int u, int k)
{
int d = num[u].size(), v;
for(int i = 0; i < d; i++){
v = num[u][i];
for(int j = 0; j < k; j++) printf(" ");
if(num[v].size()){
if(s[v] == '-'){printf("- object%d\n", v); dfs(v, k+1);}
else printf("+ object%d\n", v);
}
else printf(" object%d\n", v);
/*
if(s[v] == '-'){
if(num[v].size()) {printf("- object%d\n", v); dfs(v, k+1);}
else printf(" object%d\n", v);
}
else if(s[v] == '+') printf("+ object%d\n", v);
*/
}
}
int main()
{
#ifdef LOCAL
freopen("a.txt", "r", stdin);
//freopen("b.txt", "w", stdout);
int T = 1;
while(T--){
#endif // LOCAL
int n, k, val;
scanf("%d", &n);
for(int i = 0; i <= n; i++){
getchar();
scanf("%c", &s[i]);
scanf("%d", &k);
while(k--){
scanf("%d", &val);
num[i].push_back(val);
}
}
if(n == 0) {printf(" project\n");}
else{
if(s[0] == '-'){
printf("- project\n");
dfs(0, 1);
}
else printf("+ project\n");
}
#ifdef LOCAL
printf("\n");
}
#endif // LOCAL
return 0;
}