#include<bits/stdc++.h>
#define _rep(i,a,b) for(int i=(a);i<=(b);i++)
#define _antirep(i,a,b) for(int i=(a);i>=(b);i--)
using namespace std;
typedef long long LL;
typedef double db;
const int N=266;
int cnt;
string s;
map<string,bool>Map;
struct node
{
int x;
string p;
}t[N];
bool cmp(node fir,node sed)
{
if(fir.p.size()!=sed.p.size()) return fir.p.size()<sed.p.size();
return fir.p<sed.p;
}
int to_number(string pp)
{
int res=0;
for(int i=0;i<pp.size();++i) res=(res*10)+(pp[i]-'0');
return res;
}
int main()
{
cin.tie(0)->sync_with_stdio(0);
while(cin>>s)
{
if(s=="()")
{
sort(t+1,t+cnt+1,cmp);
bool ok=true;
if(t[1].p!="") ok=false;
Map.clear();
Map[""]=1;
_rep(i,2,cnt)
{
if(!Map[t[i].p.substr(0,t[i].p.size()-1)]) ok=false;
Map[t[i].p]=1;
}
if(!ok) cout<<"not complete";
else _rep(i,1,cnt) cout<<t[i].x<<" ";
cout<<endl;
cnt=0;
}
else
{
++cnt;
int l,r;
l=s.find("(")+1; r=s.find(",")-1;
t[cnt].x=to_number(s.substr(l,r-l+1));
l=r+2,r=s.find(")")-1;
t[cnt].p=s.substr(l,(r-l+1));
}
}
return 0;
}