#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define pb push_back #define mp make_pair #define sz(a) ((int)(a.size())) #define all(a) a.begin(),a.end() #define EPS 1e-11 #define REP(i,n) for(int (i)=0;i<(n);++i) #define REPS(i,n) for(int(i)=0;i<(n.size());++i) #define FOR(i,a,b) for(int(i)=(a);i<=(b);++i) #define FORD(i,a,b) for(int(i)=(a);i>=(b);--i) #define FORE(it,c) for(__typeof((c).begin()) it=(c).begin();it!=(c).end();++it) #define LL long long #define se second #define fi first #define SQR(a) ((a)*(a)) int N; char nazov[303]; vector meno; string co; vector > kto; bool pr[1005]; vector ret[1005]; int main() { while(scanf("%d %s",&N,nazov),N>0&&strcmp("END",nazov)!=0) { meno.resize(N); kto.clear(); REP(i,N) { int cena,c2; cin>>meno[i]>>co;scanf ("%d.%d",&cena,&c2); if (co=="buy") { pr[i]=1; } else pr[i]=0; kto.pb(mp(i,cena*1000+c2)); } REP(i,N) { ret[i].clear(); REP(j,N) if (i!=j) { if (pr[i]) { if (!pr[j]) { if (kto[j].se<=kto[i].se) ret[i].pb(j); } } else if (!pr[i]) { if (pr[j]) { if (kto[j].se>=kto[i].se) ret[i].pb(j); } } } } puts(nazov); REP(i,N) { printf("%s:",meno[i].c_str()); if (sz(ret[i])==0) printf(" NO-ONE"); else REP(j,sz(ret[i])) { printf(" %s",meno[ret[i][j]].c_str()); } putchar(10); } } return 0; }