#include #include #define DBG(x) #define DBG2(x) ifstream in("friends.in"); void curly( int* res) { for (int i=0; i<26; i++) res[i]=0; char c; in>>c; do { in>>c; if (isalpha(c)) { res[c-'A']=1; } } while (c!='}'); DBG(cout<<'c'<>c; if (in.peek()!=')') { expr(res); } in>>c; } void intexpr(int *res) { char h; int res2[26]; h=in.peek(); if (h=='(') bracket(res); else curly(res); while (in.peek()=='*') { char c; in>>c; h=in.peek(); if (h=='(') bracket(res2); else curly(res2); for (int i=0; i<26; i++) res[i]=res[i]==1&& res2[i]==1; } DBG( cout <<'i'; for (int i = 0; i<26; i++) if (res[i]) cout<>h; { char c; int res2[26]; in.putback(h); /*if (h=='(') bracket(res); else*/ intexpr(res); if (in.eof()) return; in>>c; DBG(cout<<'e'<>c; } in.putback(c); } } main() { for (int kase=1; ;kase++) { int f[30]; //in.getline(s,500); //if (strlen(s)==0) break; if (in.fail())break; for (int i = 0 ; i<26 ; i++) f[i]=0; expr(f); cout<<'{'; for (int i = 0; i<26; i++) if (f[i]) cout<